🔧

Built-in workflowsで新規作成issueをGithub Projectsへ自動追加する

2023/08/07に公開

開発のタスク管理にGithub Projectsを利用しているのですが、issueの作成時にProjectへの追加とstatus選択をポチポチ行うのが煩雑だったため自動化することにしました。

Github ProjectsにはBuilt-in workflowsという機能が用意されており、この手の簡易なワークフローはGUI上でサクッと自動化することができます。
https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations

isseu作成時にProjectへ自動追加する

対象のGitHub Projectを開き、画面右上の三点メニュー内にある「Workflows」を選択します。

サイドバーのDefault Workflowsから「Auto-add to project」を選択し、Editボタンをクリック。

リポジトリを選択し、対象とするissueのフィルタリング設定を行います。

See [n] existing items that match this query のリンクをクリックすると、該当するissueの一覧が確認できます。

既存issueについては、リンク先の画面からProjectsに一括追加することができます。

Going forward, all new or updated items that match your filter will be auto added. You can also manually add items that currently match your filter
Adding items to your project - GitHub Docs

対象issueの条件を定めたら「Save and turn on workflow」ボタンをクリックして適用。Auto-add to projectのスイッチがOnの状態になっていれば有効化されています。

新規のissueを作成をして、Projectに自動追加されることを確認しましょう。

Project追加時にstatusを自動でセットする

Projectへの自動追加と合わせて、statusもデフォルトで設定されるようにします。
サイドメニューから「Item added to Project」を選択し、先ほどと同様にEditボタンをクリック。

When an item is added to the project 項目で、issueとPull Requestの選択が可能です。

Set value 項目でセットするstatusを選択。

「Save and turn on workflow」ボタンクリックで適用完了です。

他にも、一定日数を超えたissueをアーカイブさせるワークフローなどがGUI上で設定できます。

開発ワークフロー構築はGitHub Actionsで

さらに詳細なカスタマイズを行いたい場合は、GitHub GraphQL APIGitHub Actionsを用いたワークフロー構築が可能です。CI/CD絡めたジョブ実行などはこちらを活用すると良いでしょう。
https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects
https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions

Discussion