【GitHub】特定のリポジトリにissueが作成されたら、自動で Project(GitHub Projects)に追加されるようにする【GitHub Projects】

【GitHub】特定のリポジトリにissueが作成されたら、自動で Project(GitHub Projects)に追加されるようにする【GitHub Projects】

ポイント

以下のものを利用しました。

GitHub Actions
「Add To GitHub projects」(※classicのGitHub projectsはサポートしてないので注意)

手順

アクセストークンを生成しておく

GitHubの右上のアカウントメニューのSettingsをクリックし

image-6165.png

Settings左メニュー一番下の「Developer settings」をクリック

image-8651.png

左メニューのPersonal access tokensのTokens(classic)をクリック
image-9556.png

「Generate new token」をクリックし、「Generate new token(classic)」を選択します。

image-1061.png

各項目を入力してtokenを作成します。
scopesは以下のようにしました。
これについては、個人アカウントのリポジトリで行うかorgで利用するかで異なると思うので各自調整してください。

image-11024.png

tokenを生成すると最初にtokenを表示してくれますが、以降リロード等すると二度と表示されないので、コピーして控えておきます。

image-1254.png

目的のリポジトリのSecretsにtokenを登録する

今回はOrganizationで行いたいのでOrganizationのSecretsでもいいのですが、リポジトリのSecretsで行いたいと思います。

監視対象のリポジトリのページにアクセスして「Settings」をクリックします。
image-13428.png

遷移先ページ左メニューのSecrets > Actionsをクリックします。

image-1585.png

表示されたページの「New Repository secret」をクリックします。

Nameは「GHPROJECT_TOKEN」とでもして(なんでも良いです)
Secretに先程コピーして控えておいたtokenを入力し、「Add secret」をクリックしてsecretに登録します。

image-1775.png

Workflowを作成

リポジトリにissueが作成されたらActionsで実行されるworkflowを作成します。先程作成したtokenやsecretはここの処理で必要になります。

監視するリポジトリのページにアクセスし、「Actions」をクリックします。

image-1885.png

左メニューの「New workflow」をクリックします。

image-1978.png

表示されたページの「set up a workflow yourself」をクリックします。
image-2075.png

workflowのエディタが開かれるので、以下のように入力します。
ファイル名(〇〇.yml)も各々で自由につけてokです。

image-2297.png

name: 'Your workflow name'
on:
  issues:
    types: [opened]
jobs:
  add-issue-to-project:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/add-to-project@vX.X.X ←バージョンは各々確認
      id: add-issue-to-project
      with:
        project-url: 自分のGitHub ProjectのURL(〇〇/projects/[project No.] まででok)
        github-token: ${{ secrets.GHPROJECT_TOKEN }} ←自分で付けたtokenの名前にしてください

↑各項目は各々の環境に合わせて変更してください。
「actions/add-to-project@vX.X.X」のバージョンは↓で確認できます。
https://github.com/marketplace/actions/add-to-github-projects

書き終わったら右上の「Start commit」でcommitしてymlを保存しましょう。

これで準備は完了です。

確認

最後に対象のリポジトリでissueを作成してProjectに追加されるか確認し、できてればokです。

以上です。

Advanced

趣味とか私用でないOrganizationにおいては、個人のアクセストークンの利用はやはり避けた方が良いと思います。今回は試験的な試みというか私自身がやりたくてやっているだけなので、参考にする場合は自己責任でお願いします。

どのようなルールで組織のトークンを管理するかは議論するといろんな意見が出てきそうですね。

Share this post