Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

カードがプロジェクトボードの列に追� されたときにラベルを削除する

この記事では、次の� �目が扱われます。

GitHub Actions を使用すると、プロジェクト ボード の特定の列に issue または pull request が追� されたときに、ラベルを自動的に削除できます。

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

はじめに

このチュートリアルでは、actions/github-script アクションと条件を利用し、プロジェクト ボード で特定の列に追� された issue と pull request からラベルを削除する方法について紹介します。 たとえば、プロジェクト カードが Done に移動されるとき、needs review ラベルを削除できます。

チュートリアルでは、actions/github-script アクションを使用するワークフロー ファイルをまず作成します。 次に、ニーズに合わせてワークフローをカスタマイズします。

ワークフローの作成

  1. このプロジェクト管理ワークフローを適用したいリポジトリを選択してく� さい。 書き込みアクセス権を持つ既存のリポジトリを利用することも、新しいリポジトリを作成することもできます。 リポジトリの作成の詳細については、「新しいリポジトリの作成」を参照してく� さい。

  2. リポジトリに属する プロジェクト ボード を選びます。 このワークフローは、ユーザまたは Organization に属するプロジェクトでは使用できません。 既存の プロジェクト ボード を使用することも、新しい プロジェクト ボード を作成することもできます。 プロジェクトの作成について詳しくは、「project board の作成」をご覧く� さい。

  3. リポジトリに .github/workflows/YOUR_WORKFLOW.yml というファイルを作成します (YOUR_WORKFLOW は任意の名前に置き換えます)。 これがワークフローファイルです。 GitHub での新しいファイルの作成の詳細については、「新しいファイルの作成」を参照してく� さい。

  4. 次の 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"]
                })
  5. ワークフローファイルのパラメータをカスタマイズします。

    • github.event.project_card.column_id == '12345678' で、12345678 を、そこに移動された Issue と pull request のラベルを削除する列の ID に変更します。

      列 ID を見つけるには、プロジェクト ボード に移動します。 列のタイトルの横にある をクリックし、 [列リンクのコピー] リンクをクリックします。 列 ID は、コピーされたリンクの末尾にある番号です。 たとえば、24687531https://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 から削除するラベルの名前に変更します。 ラベルの詳細については、「ラベルの管理」を参照してく� さい。

  6. ワークフローファイルを、リポジトリのデフォルトブランチにコミットしてく� さい。 詳細については、「新しいファイルの作成」を参照してく� さい。

ワークフローのテスト

リポジトリの プロジェクト ボード 上のプロジェクト カードが移動するたびに、このワークフローが実行されます。 カードが issue または pull request であり、指定した列に移動された� �合、ワークフローにより、指定されたラベルが issue または pull request から削除されます。 注釈のカードは影響を受けません。

issue を プロジェクト ボード から対象の列に移動して、ワークフローをテストします。

  1. リポジトリで Issue をオープンします。 詳細については、「Issue の作成」を参照してく� さい。
  2. ワークフローで削除するラベルを使用して issue にラベルを付けます。 詳細については、ラベルの管理に関する記事を参照してく� さい。
  3. ワークフロー ファイルで指定した プロジェクト ボード 列に issue を追� します。 詳しくは、「project boardへの issue と pull request の追� 」を参照してく� さい。
  4. プロジェクトに Issue を追� することでトリガーされたワークフローの実行を確認するには、ワークフローの実行履歴を表示します。 詳細については、「ワークフロー実行の履歴を表示する」を参照してく� さい。
  5. ワークフローが完了すると、プロジェクト列に追� した issue で指定したラベルが削除されます。

次のステップ