かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Azure DevOps に CLI が来た(プレビュー)

まじで。

azure.microsoft.com

Azure CLI v2.0.49 以上が入ってれば以下のコマンドで入ります。

 az extension add --name azure-devops

こんなメッセージが出れば OK

The installed extension 'azure-devops' is in preview.

あとは、まだログインしてなかったら az login でログインして、デフォルトのオーガナイゼーションを設定して

az devops configure --defaults organization=https://dev.azure.com/xxxx project=xxxx

ヘルプを見てみるとこんな感じでした。色々できそう。

>az devops -h

Group
    az devops : Manage Azure DevOps organization level operations.
        Related Groups
        az pipelines: Manage Azure Pipelines
        az boards: Manage Azure Boards
        az repos: Manage Azure Repos
        az artifacts: Manage Azure Artifacts.

Subgroups:
    admin            : Manage administration operations.
    project          : Manage team projects.
    service-endpoint : Manage service endpoints/service connections.
    team             : Manage teams.

Commands:
    configure        : Configure the Azure DevOps CLI or view your configuration.
    feedback         : Displays information on how to provide feedback to the Azure DevOps CLI team.
    login            : Set the credential (PAT) to use for a particular organization.
    logout           : Clear the credential for all or a particular organization.

リポジトリの情報見てみたかったらこんな感じ

$ az repos show -r Xxxx
{
  "defaultBranch": "refs/heads/master",
  "id": "xxxx",
  "isFork": null,
  "name": "Xxxx",
  "parentRepository": null,
  "project": {
    "abbreviation": null,
    "description": null,
    "id": "xxxx",
    "lastUpdateTime": "2019-02-15T05:10:50.317Z",
    "name": "Xxxx",
    "revision": 243,
    "state": "wellFormed",
    "url": "https://dev.azure.com/xxxx/_apis/projects/xxxx",
    "visibility": "private"
  },
  "remoteUrl": "https://xxxx",
  "size": 9537505,
  "sshUrl": "git@ssh.dev.azure.com:v3/xxxx/xxxx/xxxx",
  "url": "https://dev.azure.com/xxxx/xxxx/_apis/git/repositories/xxxx",
  "validRemoteUrls": null
}

ふむ、個人的に気になるのは Azure Boards まわり。id 指定で見たり更新したり(GUIでやったほうが便利だった)、あとは知らなかったんですが Work Item Query Language (WIQL) で問い合わせ出来るみたいです。

docs.microsoft.com

まぁ SQL ですね。使える列というかフィールドは以下にありました。

docs.microsoft.com

ということでこんなクエリーを投げると…

az boards query --wiql "SELECT [System.Id] FROM WorkItems WHERE [System.IterationPath] = @CurrentIteration('[Tasks]\Tasks Team')"

こんな JSON が返ってきました。

[
  {
    "fields": {
      "System.Id": 853
    },
    "id": 853,
    "relations": null,
    "rev": 21,
    "url": "https://dev.azure.com/xxxx/_apis/wit/workItems/853"
  },
  {
    "fields": {
      "System.Id": 915
    },
    "id": 915,
    "relations": null,
    "rev": 21,
    "url": "https://dev.azure.com/xxxx/_apis/wit/workItems/915"
  },
  {
    "fields": {
      "System.Id": 972
    },
    "id": 972,
    "relations": null,
    "rev": 14,
    "url": "https://dev.azure.com/xxxx/_apis/wit/workItems/972"
  },
  ... 続く ...
]

CLI ツールが出来たことでいろんなものとの連携が捗りそうですね!