注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
はじめに
このチュートリアルでは、actions/github-script
アクションと条件を利用し、プロジェクト ボード で特定の列に追� された issue と pull request からラベルを削除する方法について紹介します。 たとえば、プロジェクト カードが Done
に移動されるとき、needs review
ラベルを削除できます。
チュートリアルでは、actions/github-script
アクションを使用するワークフロー ファイルをまず作成します。 次に、ニーズに合わせてワークフローをカスタマイズします。
ワークフローの作成
-
このプロジェクト管理ワークフローを適用したいリポジトリを選択してく� さい。 書き込みアクセス権を持つ既存のリポジトリを利用することも、新しいリポジトリを作成することもできます。 リポジトリの作成の詳細については、「新しいリポジトリの作成」を参照してく� さい。
-
リポジトリに属する プロジェクト ボード を選びます。 このワークフローは、ユーザまたは Organization に属するプロジェクトでは使用できません。 既存の プロジェクト ボード を使用することも、新しい プロジェクト ボード を作成することもできます。 プロジェクトの作成について詳しくは、「project board の作成」をご覧く� さい。
-
リポジトリに
.github/workflows/YOUR_WORKFLOW.yml
というファイルを作成します (YOUR_WORKFLOW
は任意の名前に置き換えます)。 これがワークフローファイルです。 GitHub での新しいファイルの作成の詳細については、「新しいファイルの作成」を参照してく� さい。 -
次の YAML コンテンツをワークフローファイルにコピーします。
YAML name: Remove a label on: project_card: types: - moved jobs: remove_label: if: github.event.project_card.column_id == '12345678' runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/github-script@v5 with: script: | // this gets the number at the end of the content URL, which should be the issue/PR number const issue_num = context.payload.project_card.content_url.split('/').pop() github.rest.issues.removeLabel({ issue_number: issue_num, owner: context.repo.owner, repo: context.repo.repo, name: ["needs review"] })
-
ワークフローファイルのパラメータをカスタマイズします。
-
github.event.project_card.column_id == '12345678'
で、12345678
を、そこに移動された Issue と pull request のラベルを削除する列の ID に変更します。列 ID を見つけるには、プロジェクト ボード に移動します。 列のタイトルの横にある をクリックし、 [列リンクのコピー] リンクをクリックします。 列 ID は、コピーされたリンクの末尾にある番号です。 たとえば、
24687531
はhttps://github.com/octocat/octo-repo/projects/1#column-24687531
の列 ID です。複数の列を操作する� �合、条件を
||
で区切ります。 たとえば、プロジェクト カードが列12345678
または列87654321
に追� されるたびにif github.event.project_card.column_id == '12345678' || github.event.project_card.column_id == '87654321'
が動作します。 列は異なるプロジェクトボード上にある可能性があります。 -
github.rest.issues.removeLabel()
関数のname
の値を、指定された列に移動された issue または pull request から削除するラベルの名前に変更します。 ラベルの詳細については、「ラベルの管理」を参照してく� さい。
-
-
ワークフローファイルを、リポジトリのデフォルトブランチにコミットしてく� さい。 詳細については、「新しいファイルの作成」を参照してく� さい。
ワークフローのテスト
リポジトリの プロジェクト ボード 上のプロジェクト カードが移動するたびに、このワークフローが実行されます。 カードが issue または pull request であり、指定した列に移動された� �合、ワークフローにより、指定されたラベルが issue または pull request から削除されます。 注釈のカードは影響を受けません。
issue を プロジェクト ボード から対象の列に移動して、ワークフローをテストします。
- リポジトリで Issue をオープンします。 詳細については、「Issue の作成」を参照してく� さい。
- ワークフローで削除するラベルを使用して issue にラベルを付けます。 詳細については、ラベルの管理に関する記事を参照してく� さい。
- ワークフロー ファイルで指定した プロジェクト ボード 列に issue を追� します。 詳しくは、「project boardへの issue と pull request の追� 」を参照してく� さい。
- プロジェクトに Issue を追� することでトリガーされたワークフローの実行を確認するには、ワークフローの実行履歴を表示します。 詳細については、「ワークフロー実行の履歴を表示する」を参照してく� さい。
- ワークフローが完了すると、プロジェクト列に追� した issue で指定したラベルが削除されます。
次のステップ
actions/github-script
アクションで実行できる追� の機能について詳しくは、actions/github-script
アクションのドキュメントにアクセスしてく� さい。- このアクションを使用するワークフローの例については GitHub を検索してく� さい。