ぺのめも

Web開発を勉強中。学んだことや思ったことなど

GitHub で issue を作成したら自動で project に追加する方法

はじめに

GitHub Actions を使って、リポジトリで issue を作成したら自動で project に追加する workflow を作成しました。

背景

自分が今開発しているリポジトリでは、GitHub の project (classic じゃないほう)を使って、issue をカンバン形式で管理しています。
しかし、GitHub リポジトリの現時点の仕様では、issue を作成した時に自動でプロジェクトに追加するような設定ができません。

そのため、issue を作成するたびに手動で追加先 project を指定する必要があり、指定し忘れるとカンバンから漏れてしまうという課題がありました。
そこで、GitHub Actions で自動化しました。

GitHubのフォーラムでも、追加先 project を issue template で指定できるようにしてほしいという要望が上がっていますが、現時点ではまだ対応されていないようです。

workflow の作成

こちらの workflow ファイルを作成・配置します。
利用している add-to-project アクションは、GitHub認証済みアクションなので安心です。

# .github/workflows/add_issues_to_project.yml

name: Add issues to project

on:
  issues:
    types: [opened]

jobs:
  add-to-project:
    name: Add issue to project
    runs-on: ubuntu-latest
    steps:
      - uses: actions/add-to-project@v0.4.0
        with:
          project-url: https://github.com/users/[ユーザー名]/projects/[プロジェクトID]
          github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}


personal access token の作成・設定

トークンの作成

1. Tokens(classic) の作成画面を開く

personal access tokenは、GitHub アカウントの Settingsリポジトリの Settings ではなく)を開き、
Developper settings > Personal access tokens > Tokens(classic)
のメニューから、作成画面を開くことができます。

今回利用しているアクションは、現時点ではFine-grained tokensのほうには対応していないので注意してください。
Fine-grained tokensを使うと、アクションの実行時にPersonal access tokens with fine grained access do not support the GraphQL APIというエラーが出ます。

2. 権限設定・トークン作成

下記の権限を設定し、「Generate token」をクリックするとトークンが作成されます。

  • repo(配下すべて)
  • project(配下すべて)

注意:
作成したトークンの文字列は、このあと利用するのでメモしておいてください。
一度画面を閉じると再表示されません。

リポジトリへの登録

トークンを作成できたら、リポジトリの Settings を開き、
Security > Secrets and variables > Actions
のメニューから、作成したトークンを登録します。

項目名に任意の名前(今回はADD_TO_PROJECT_PAT)をつけ、Valueには生成したトークンの文字列をペーストして、登録完了です。

確認方法

ここまでの手順を完了すると、このリポジトリで issue を作成した時に workflow が動き、project が自動で指定されるようになります。
issue を作成したら、リポジトリの Actions タブで、Add issues to projectのワークフローが動いているかを確認してみてください。

ワークフローの実行確認
ワークフローの実行確認

参考

github.com