はじめに
そういえばAzure Boardsって、Organization単位ででProjectをまたがってWorkItemを串刺ししてみたりしてチームメンバの状況を俯瞰的に見ることって簡単にできたりしますでしょうか?
— きよくらならみ (@kiyokura) 2020年10月3日
(直接エントリとは関係ない質問)
前のエントリー公開後、このようなお便りをいただきました。ちょうど一回やってみたかったことなので、書いておきます。
簡単な解決方法
簡単な方法としてはクエリー作るときにQuery Across Projects
にチェックを入れることです。
チェックしない場合。
チェックした場合。商品一覧の表示
というfeatureが追加されていますね。これは別のプロジェクトのWork Itemです。もっとも簡単なのはこのパターンでしょう。
Azure DevOpsはOrganizationをまたがるのはユーザー管理の観点から今のところサポートされていません。
でもこうじゃなくて、もうちょっと全体を俯瞰してみたい場合、GitHubを使ってやってみようかなという方法を紹介します。
GitHub Projectを使って管理する
GitHub Projectという機能があります。issueをまとめて管理するカンバンですね。でも今回はAzureの機能を使うので、github-actions-issue-to-work-itemというActionを使ってみましょう。
Azure Boardsアプリをインストールする
事前にAzure Boardsアプリをインストールしておいてください。
GitHub接続を作る
Service ConnectionからGitHubへの接続を作っておきます(たぶん要らないとは思いますが)。
GitHub Projectを作る
告知用のレポジトリからProjectを作ります。
レポジトリからActionsを作ります。接続するプロジェクトを選びます。YAMLのサンプルはレポジトリにあるのでそのままぱっくんちょすればいいです。
サンプルはAgileプロセス前提で作っているので、ScrumやBasicを使う場合、ado_wit
や、ado_active_status
を該当プロセスの値に変えることを忘れないでください。
API Keyを作る
GitHubとAzure DevOps側にPATを作っておく必要があります。
Azure DevOpsではrepoのRead & Write(余計なManageまでついていますが)だけ必要です。
GitHubではrepoのフルが必要です。
作ったレポジトリにADO_PERSONAL_ACCESS_TOKEN
とGH_PERSONAL_ACCESS_TOKEN
の二つのシークレットを作って、PATを貼り付けます。
issueに追加
GitHub側でIssueを作ると、登録したActionsが動いて、自動的にAzure Boardsに反映されます。
Azure Boardsに作られた例。これでAssignやAreaなどを直せばいいでしょう。
作られたissueはProjectに登録されるので、わかりやすいです。Issueのステートと連動するので、GitHub側でCloseすれば自動的に変更されます。
まとめ
GitHub Projectsでは複数のレポジトリのissueの登録ができます。仕事などでGitHubのorganizationを運用している場合、この方法でまとめていけばいいんじゃないかなと思います。
ちょっとどっちが正になるかわかりづらいかもしれないですが、大きなプロジェクト全体で見るようなレベルのものに関してはGitHubで作っておく、そうじゃないものはAzure Boardsで管理するみたいなこともできるので、場合によっては便利に使えるかもしれません。