この記事のまとめ
- GitHub Actions を使わずに、 Issue や Pull Request をプロジェクトに自動紐づけできます。
- 紐づけには Projects の Workflows を使います。
GitHub プロジェクト
GitHub でプロジェクト管理を行うなら、 Projects の機能を活用してみましょう。 Issues は単純な課題管理だけなら十分ですが、進捗管理やマイルストーン別のチケット管理など、本格的なプロジェクト管理を行うのには力不足です。 Projects の機能を使うと、かんばんを用いた進捗管理や、マイルストーン別の Issue 一覧など、プロジェクト管理に役立つビューが提供されます。 カスタマイズ性も高く、 GitHub のドキュメントに従ってポチポチやっていけば、目的のビューを簡単に作成できます。 以下を読み込めば、初心者でも数時間もかからず目的の状態を作れるのではないかと思います。
Projects と Issues の関係
Projects で管理するチケットは、 Issue や Pull Request として登録したものが対象となります。 Projects は、ひとつのリポジトリに対して複数作成することができます。 そのため、 Issue や Pull Request を作ったとしても、自動的に Project を割り当てる機能はあらかじめ提供されていません。 しかし実際に Projects を使っていくと、 Issue や Pull Request を登録したときに、自動的に Project を割り当ててほしい、と思うことが増えていくはずです。
Issue や Pull Request 登録時にプロジェクトを割り当てる
これまでは、 Issue や Pull Request が登録されたことをトリガーにして GitHub Actions のワークフローを実行し、 Project の設定を行うワークフローを流すことでこれを実現していました。 しかし、最近追加された Projects の Workflows を利用すると、 GitHub Actions のワークフローを作らなくても、 Issue や Pull Request を Project に紐づけできるようになりました。
Projects の Workflows は、設定したい Project を開き、右上の […] を開いて、 [Workflows] から設定できます。
[Workflows] の画面を開くと、左側にデフォルトで設定されているワークフローの一覧が表示されます。 既定では、 [Item closed] など緑色の丸がついた 3 つのワークフローが有効になっています。 これらのメニューから、 [Auto-add to project] を選択しましょう。
このワークフローはまだ設定されていない状態です。 Issue や Pull Request が登録されたときに、プロジェクトに自動で追加されるよう設定しましょう。 右上の [Edit] ボタンを押下します。
対象のリポジトリと、 Issue や Pull Request を識別するフィルターを設定します。
登録されたすべての Issue や Pull Request を Project に追加したいのであれば、 is:issue,pr is:open
のフィルターを設定しておくとよいでしょう。
細かく制御したいのであれば、ラベルなどを条件に Issue や Pull Request のフィルターを設定してください。
設定が終わったら、 [Save and turn on workflow] ボタンを押下して有効にします。
正常に完了すると、 [Auto-add to project] のワークフローに緑色の丸が点灯し、有効になります。
Issue を登録してみる
では実際に Issue を登録してみます。 以下のようにタイトルだけ設定して Issue を登録します。
Issue を登録すると、その直後に [github-project-automation] という名前の bot が動作し、先ほど作成した demo プロジェクトに Isseu を追加してくれる様子が確認できます。
Pull Request の場合も同様で、 Pull Request が提出されたとき、自動で Project に追加されます。
まとめ
今回は、登録した Issue や Pull Request を自動的に Project に追加する方法を解説しました。 GitHub Actions を使わなくても実現できるので非常に便利に使えそうです。 今回紹介した [Auto-add to project] 以外にも、自動化に使えそうなものがいくつかありそうですね。