Skip to main content

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

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

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

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

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

はじめに

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

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

ワークフローの作成

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

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

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

  4. 次の YAML コンテンツをワークフローファイルにコピーします。

    YAML
    # このワークフローはGitHubによって認定されていないアクションを使用します。
    # それらはサードパーティによって提供され、
    # 別個の利用規約、プライバシーポリシー、
    # ドキュメントを参照してく� さい。
    
    # GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。
    # 新しいバージョンを取得するには、SHA を更新する必要があります。
    # タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。
    
    name: Remove labels
    on:
      project_card:
        types:
          - moved
    jobs:
      remove_labels:
        if: github.event.project_card.column_id == '12345678'
        runs-on: ubuntu-latest
        permissions:
          issues: write
          pull-requests: write
        steps:
          - name: remove labels
            uses: andymckay/labeler@5c59dabdfd4dd5bd9c6e6d255b01b9d764af4414
            with:
              remove-labels: "needs review"
              repo-token: ${{ secrets.GITHUB_TOKEN }}
  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' が動作します。 列は異なるプロジェクトボード上にある可能性があります。

    • remove-labels の値を、指定された列に移動された Issue または pull request から削除するラベルのリストに変更します。 複数のラベルはコンマで区切ります。 たとえば、「 "help wanted, good first issue" 」のように入力します。 ラベルの詳細については、「ラベルの管理」を参照してく� さい。

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

ワークフローのテスト

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

プロジェクトの Issue をターゲット列に移動して、ワークフローをテストします。

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

次のステップ

  • ラベルを追� する、Issue が割り当てられているか、Issue に特定のラベルが貼られている� �合にこのアクションをスキップするなど、andymckay/labeler アクションでできる他のことについては、andymckay/labeler アクション ドキュメントをご覧く� さい。
  • このアクションを使用するワークフローの例については GitHub を検索してく� さい。