ツナ缶雑記

ぐうたらSEのブログです。主にマイクロソフト系技術を中心に扱います。たまに技術と関係ないことも書きます。

Issue や Pull Request を自動的にプロジェクトへ追加する方法(GitHub Actions未使用)

この記事のまとめ

  • GitHub Actions を使わずに、 Issue や Pull Request をプロジェクトに自動紐づけできます。
  • 紐づけには Projects の Workflows を使います。

GitHub プロジェクト

GitHub でプロジェクト管理を行うなら、 Projects の機能を活用してみましょう。 Issues は単純な課題管理だけなら十分ですが、進捗管理やマイルストーン別のチケット管理など、本格的なプロジェクト管理を行うのには力不足です。 Projects の機能を使うと、かんばんを用いた進捗管理や、マイルストーン別の Issue 一覧など、プロジェクト管理に役立つビューが提供されます。 カスタマイズ性も高く、 GitHub のドキュメントに従ってポチポチやっていけば、目的のビューを簡単に作成できます。 以下を読み込めば、初心者でも数時間もかからず目的の状態を作れるのではないかと思います。

docs.github.com

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] から設定できます。

Project の Workflows を選択

[Workflows] の画面を開くと、左側にデフォルトで設定されているワークフローの一覧が表示されます。 既定では、 [Item closed] など緑色の丸がついた 3 つのワークフローが有効になっています。 これらのメニューから、 [Auto-add to project] を選択しましょう。

[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] のワークフローに緑色の丸が点灯し、有効になります。

Auto-add to project が有効になる

Issue を登録してみる

では実際に Issue を登録してみます。 以下のようにタイトルだけ設定して Issue を登録します。

タイトルだけ登録する

Issue を登録すると、その直後に [github-project-automation] という名前の bot が動作し、先ほど作成した demo プロジェクトに Isseu を追加してくれる様子が確認できます。

自動的に Project に追加される

Pull Request の場合も同様で、 Pull Request が提出されたとき、自動で Project に追加されます。

まとめ

今回は、登録した Issue や Pull Request を自動的に Project に追加する方法を解説しました。 GitHub Actions を使わなくても実現できるので非常に便利に使えそうです。 今回紹介した [Auto-add to project] 以外にも、自動化に使えそうなものがいくつかありそうですね。