Skip to main content

必要なワークフロー

組織内のすべてのリポジトリまたは選択したリポジトリで、必須の状態チェックとして実行するワークフローを指定できます。

メモ: 必要なワークフローは現在ベータ版であり、変更される可能性があります。

概要

既定のブランチに対して開かれたすべての pull request に対して、組織内のリポジトリで実行する必要があるワークフローを構成できます。 必要なワークフローを使用すると、現在および将来のリポジトリに適用される組織全体の CI/CD ポリシーを実装できます。 必要なワークフローは pull request イベントによってトリガーされ、必須の状態チェックとして表示されます。これにより、必要なワークフローが成功するまで pull request をマージする機能がブロックされます。

必要なワークフローを検索するためのコントロールを示すスクリーンショット

必要なワークフローは、再利用可能なワークフローと同じではありません。 再利用可能なワークフローは、別のワークフローによって呼び出すことができます。 必要なワークフローは、組織の所有者によってリポジトリに適用されます。

前提条件

必要なワークフローを構成する前に、次の前提条件にご注意ください。

  • 必要なワークフローが実行されるように、Organization の設定で、リポジトリに対して GitHub Actions を有効にする必要があります。 Organization レベルで有効にすると、リポジトリの設定で GitHub Actions が無効になっている場合にも、必要なワークフローが実行されます。 Organization のリポジトリでの GitHub Actions の管理について詳しくは、「Organization の GitHub Actions 権限の管理」をご覧ください。
  • 必要なワークフローは、必須ステータス チェックが Organization の計画でサポートされているリポジトリ内でのみ、Organization で使うことができます。 必須ステータス チェックがサポートされていない場合、ワークフローは引き続き実行されますが、必須のチェックにはならず、マージはブロックされません。 必須ステータス チェックのサポートについて詳しくは、「保護されたブランチについて」をご覧ください。
  • 必要なワークフローが必須ステータス チェックとして実行されるように、リポジトリの既定のブランチは、Organization の既定のブランチの設定と一致している必要があります。 既定のブランチ名が一致していない場合、ワークフローは引き続き実行されますが、必須チェックにはなりません。 既定のブランチ名の管理について詳しくは、「Organization のリポジトリのデフォルブランチ名を管理する」と「デフォルト ブランチを変更する」をご覧ください。
  • 必要なワークフローを実行するには、pull request のソース リポジトリがターゲット リポジトリと同じ Organization に存在している必要があります。 GitHub では、ワークフローを含むリポジトリの既定のブランチの HEAD コミットが、必要なワークフローのソースとなります。
  • 必要なワークフローで使うシークレットは、Organization レベルかターゲット リポジトリ内で作成する必要があります。
  • ソース リポジトリ内のシークレットは、ワークフローがターゲット リポジトリ内で実行される場合にはフェッチされません。

ソース リポジトリの制限と動作

ソース リポジトリとワークフローに関する次の制限と動作にご注意ください。

  • 必要なワークフローは、任意のリポジトリ フォルダーに格納可能で、通常のワークフローのように .github/workflows フォルダーに限定されることはありません。 必要なワークフローが再利用可能なワークフローを呼び出す場合は、その再利用可能なワークフローを .github/workflows フォルダーに格納する必要があります。 再利用可能なワークフローを呼び出すときは、再利用可能なワークフローへの完全なパスと参照を、必要なワークフローで使う必要があります。 たとえば、{owner}/{repo}/.github/workflows/{filename}@{ref} のようにします。
  • 必要なワークフローがプライベート リポジトリリポジトリに含まれている場合は、リポジトリ内のワークフローが Organization 内の他のリポジトリからアクセスできるようにする必要があります。 詳しくは、「プライベート リポジトリ内のコンポーネントへのアクセスを許可する」をご覧ください。
  • パブリック リポジトリに格納されているワークフローは、Organization 内の任意のリポジトリの必要なワークフローとして構成できます。 プライベート リポジトリに格納されているワークフローは、Organization 内の他のプライベート リポジトリの必要なワークフローとして構成できます。
  • CodeQL は、リポジトリ レベルでの構成を必要とするため、必要なワークフローではサポートされていません。 code scanning の構成について詳しくは、「リポジトリの code scanning の構成」を参照してください。

ターゲット リポジトリの制限と動作

ターゲット リポジトリの次の制限と動作にご注意ください。

  • When configuring a required workflow to run on all or selected repositories, the visibility of the repository containing the required workflow will affect which repositories in your organization the workflow runs on. Required workflows stored in public repositories will run on all repositories. Required workflows stored in private repositories will only run on other private repositories.
  • Required workflows cannot be configured to run in the repository the workflow is created in. You should consider creating a separate repository to store your required workflows.
  • When configuring a required workflow to run on all or selected repositories, required workflows will not run in repositories where actions is disabled in the organization settings.

必要なワークフローに対するワークフロー実行の表示

必要なワークフローがリポジトリで少なくとも 1 回実行されると、そのリポジトリの [アクション] タブでそのワークフローの実行を表示できます。組織で必要に応じて構成されているワークフローを変更するには、組織の所有者に連絡する必要があります。 必要なワークフロー自体に変更を加えるために、必要なワークフローを含むリポジトリに対する書き込みアクセス許可を持つすべてのユーザーが、そのワークフローに変更を加えることができます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [Actions] (アクション) をクリックします。 メインのリポジトリ ナビゲーション内の [Actions](アクション) タブ

  2. 左側サイドバーの [必要なワークフロー] で、必要なワークフローのワークフロー実行を表示できます。

    必要なワークフローを示すスクリーンショット

組織に必要なワークフローの追加

組織の所有者は、組織内で必要なワークフローを構成できます。 詳細については、「組織の GitHub Actions の無効化または制限」を参照してください。