Note
GitHub では、GitHub Actions に必要なワークフローがサポートされなくなりました。 マージ前にパスするようにワークフローに要求するには、GitHub Enterprise Server を最新バージョンにアップグレードし、代わりにリポジトリ ルールセットを使用します。
GitHub Enterprise Server のアップグレードの詳細については、「新しいリリースへのアップグレードについて」を参照してください。
ルールセットの詳細は、「ルールセットで使用できるルール」をご覧ください。
概要
任意のターゲット ブランチに対して開かれたすべての pull request に、組織内のリポジトリで実行する必要があるワークフローを構成できます。 必要なワークフローを使用すると、現在および将来のリポジトリに適用される組織全体の CI/CD ポリシーを実装できます。 必要なワークフローは pull_request
と pull_request_target
既定のイベントによってトリガーされ、必須の状態チェックとして表示されます。これにより、必要なワークフローが成功するまで pull request をマージする機能がブロックされます。
必要なワークフローは、再利用可能なワークフローと同じではありません。 再利用可能なワークフローは、別のワークフローによって呼び出すことができます。 必要なワークフローは、組織の所有者によってリポジトリに適用されます。
前提条件
必要なワークフローを構成する前に、次の前提条件にご注意ください。
- 必要なワークフローが実行されるように、Organization の設定で、リポジトリに対して GitHub Actions を有効にする必要があります。 Organization レベルで有効にすると、リポジトリの設定で GitHub Actions が無効になっている場合にも、必要なワークフローが実行されます。 組織のリポジトリでの GitHub Actions の管理の詳細については、「Organization について GitHub Actions を無効化または制限する」を参照してください。
- 必要なワークフローは、必須ステータス チェックが Organization の計画でサポートされているリポジトリ内でのみ、Organization で使うことができます。 必須ステータス チェックがサポートされていない場合、ワークフローは引き続き実行されますが、必須のチェックにはならず、マージはブロックされません。 必要なステータス チェックのサポートの詳細については、「保護されたブランチについて」を参照してください。
- 必要なワークフローが必須ステータス チェックとして実行されるように、リポジトリの既定のブランチは、Organization の既定のブランチの設定と一致している必要があります。 既定のブランチ名が一致していない場合、ワークフローは引き続き実行されますが、必須チェックにはなりません。 既定のブランチ名の管理の詳細については、「Organization のリポジトリのデフォルブランチ名を管理する」と「デフォルトブランチを変更する」を参照してください。
- 必要なワークフローを実行するには、pull request のソース リポジトリがターゲット リポジトリと同じ Organization に存在している必要があります。 GitHub Enterprise Server は、ワークフローを含むリポジトリの指定されたブランチ、タグ、またはコミット SHA から必要なワークフローをソースにします。
- 必要なワークフローで使うシークレットは、Organization レベルかターゲット リポジトリ内で作成する必要があります。
- ソース リポジトリ内のシークレットは、ワークフローがターゲット リポジトリ内で実行される場合にはフェッチされません。
- あるワークフローが必須のワークフローとして実行されるとき、
on:
セクションのすべてのフィルターが無視されます。たとえば、branches
、branches-ignore
、paths
、types
などです。必須のワークフローは、既定のイベントであるpull_request
とpull_request_target
に対してのみ実行されます。 既定のアクティビティの種類について詳しくは、「ワークフローをトリガーするイベント」をご覧ください。 - 必須のワークフローは、求められるチェックとして自動的に表示される場合であっても、既存の pull request で自動的にトリガーされることはありません。 既存の pull request に対して必須のワークフローをトリガーするには、その pull request に新しい変更をプッシュします。
ソース リポジトリの制限と動作
ソース リポジトリとワークフローに関する次の制限と動作にご注意ください。
-
必要なワークフローは、任意のリポジトリ フォルダーに格納可能で、通常のワークフローのように
.github/workflows
フォルダーに限定されることはありません。 必要なワークフローが再利用可能なワークフローを呼び出す場合は、その再利用可能なワークフローを.github/workflows
フォルダーに格納する必要があります。 再利用可能なワークフローを呼び出すときは、再利用可能なワークフローへの完全なパスと参照を、必要なワークフローで使う必要があります。 たとえば、{owner}/{repo}/.github/workflows/{filename}@{ref}
のようにします。 -
必要なワークフローがプライベート リポジトリか内部リポジトリに含まれている場合は、リポジトリ内のワークフローが Organization 内の他のリポジトリからアクセスできるようにする必要があります。 詳細については、「リポジトリの GitHub Actions の設定を管理する」を参照してください。
-
パブリック リポジトリに格納されているワークフローは、Organization 内の任意のリポジトリの必要なワークフローとして構成できます。 プライベート リポジトリに格納されているワークフローは、Organization 内の他のプライベート リポジトリの必要なワークフローとして構成できます。 内部リポジトリに格納されているワークフローは、Organization 内の内部リポジトリとプライベート リポジトリの必要なワークフローとして構成できます。
-
CodeQL でリポジトリ レベルでの構成が必要なため、CodeQL は必要なワークフローでサポートされていません。 コード スキャンの構成については、「コード スキャンの高度なセットアップの構成」を参照してください。
-
必要なワークフローは、ワークフロー ファイルを含むリポジトリから任意のブランチ、タグ、またはコミット SHA を使用して参照できます。
ターゲット リポジトリの制限と動作
ターゲット リポジトリの次の制限と動作にご注意ください。
- 必要なワークフローをすべてのリポジトリで、または選択したリポジトリで実行されるように構成する場合、この必要なワークフローを含むリポジトリの可視性は、ワークフローを実行している Organization 内のリポジトリに影響します。 パブリック リポジトリに格納されている必要なワークフローは、すべてのリポジトリで実行されます。 プライベート リポジトリに格納されている必要なワークフローは、他のプライベート リポジトリで実行されます。 内部リポジトリに格納されている必要なワークフローは、内部リポジトリとプライベート リポジトリで実行されます。
- 必要なワークフローを、このワークフローが作成されたリポジトリで実行されるように構成することはできません。 必要なワークフローを格納するには、別のリポジトリの作成を検討する必要があります。
- 必要なワークフローをすべてのリポジトリで、または選択したリポジトリで実行されるように構成する場合、必要なワークフローは、Organization の設定でアクションが無効になっているリポジトリでは実行されません。
必要なワークフローに対するワークフロー実行の表示
必要なワークフローがリポジトリで少なくとも 1 回実行されると、そのリポジトリの [アクション] タブでそのワークフローの実行を表示できます。組織で必要に応じて構成されているワークフローを変更するには、組織の所有者に連絡する必要があります。 必要なワークフロー自体に変更を加えるために、必要なワークフローを含むリポジトリに対する書き込みアクセス許可を持つすべてのユーザーが、そのワークフローに変更を加えることができます。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [アクション] をクリックします。
-
左側サイドバーの [必要なワークフロー] で、必要なワークフローのワークフロー実行を表示できます。
組織に必要なワークフローの追加
組織の所有者は、組織内で必要なワークフローを構成できます。 詳しくは、「Organization について GitHub Actions を無効化または制限する」をご覧ください。