# デプロイメントと環境

デプロイ保護規則、環境シークレット、環境変数について説明します。

## デプロイ保護ルール

デプロイ保護規則は、その環境を参照するジョブを先に進める前に、特定の条件を満たすことを要求するものです。 デプロイ保護規則を使って、手動による承認を要求したり、ジョブを遅延させたり、環境を特定のブランチに制限したりできます。 また、 GitHub Apps を利用してカスタム保護規則を作成して実装し、サード パーティ製システムを使用して、 GitHubで構成された環境を参照する展開を制御することもできます。

サードパーティ システムは、監視システム、変更管理システム、コード品質システム、デプロイを安全に環境にロールアウトする前に準備状況を評価するために使うその他の手動構成などです。

> \[!NOTE]
> 任意の数の GitHub Apps ベースの配置保護ルールをリポジトリにインストールできます。 ただし、どの環境でも、同時に有効にできるデプロイ保護規則は最大 6 つです。

### 必須のレビュー担当者

必須のレビュー担当者を使って、特定の人もしくはTeamがその環境を参照するワークフローのジョブを承認しなければならないようにすることができます。 最大で6人のユーザもしくはTeamをレビュー担当者とすることができます。 レビュー担当者は、少なくともそのリポジトリの読み取りアクセス権を持っていなければなりません。 ジョブが進行するため承認が必要なレビュー担当者は1人だけです。

保護された環境への配置の自己レビューを禁止するオプションもあります。 この設定を有効にした場合、展開を開始するユーザーは、必須のレビュー担当者であっても、展開ジョブを承認できなくなります。 これにより、保護された環境への配置が常に複数のユーザーによってレビューされるようになります。

レビュー担当者を必要とする環境を参照するジョブの確認方法の詳細については、「[デプロイメントのレビュー](/ja/enterprise-server@3.22/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments)」を参照してください。

### 待機タイマー

ジョブが最初にトリガーされた後、特定の時間ジョブを遅延させるために、待機タイマーを使ってください。 時間 (分) は、1 から 43,200 (30 日) の間の整数でなければなりません。 待機時間は課金対象時間にはカウントされません。

### デプロイメントブランチとタグ

配置ブランチとタグを使って、環境に配置できるブランチとタグを制限します。 環境の配置ブランチとタグのオプションは次のとおりです。

* **制限なし**: 環境にデプロイできるブランチまたはタグに制限はありません。

* **Protected branches only:** 環境に配置できるのは、ブランチ保護規則が有効なブランチのみです。 リポジトリ内のどのブランチにもブランチ保護ルールが定義されていない場合は、すべてのブランチをデプロイできます。 ブランチ保護ルールについて詳しくは、「[保護されたブランチについて](/ja/enterprise-server@3.22/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)」をご覧ください。

  > \[!NOTE]
  > デプロイ ワークフローは、保護されたブランチと同じ名前のタグによってトリガーされ、保護されたブランチ名と一致するブランチを持つフォークは環境に配置できません。

* **Selected branches and tags:** 環境に配置できるのは、指定した名前パターンに一致するブランチとタグのみです。

  展開ブランチまたはタグルールは、ワークフロー実行の `GITHUB_REF` と照合されます。 各ワークフロー トリガーの `GITHUB_REF` の値については、「 [ワークフローをトリガーするイベント](/ja/enterprise-server@3.22/actions/reference/workflows-and-actions/events-that-trigger-workflows)」を参照してください。 展開ブランチまたはタグルールとして`releases/*`を指定した場合、`GITHUB_REF`で始まる名前の`releases/`のみが環境にデプロイできます。
  `refs/pull/*/merge`に別の分岐ルールを追加すると、`pull_request` イベントによってトリガーされるワークフローを環境にデプロイすることもできます。 ワイルドカード文字は `/`と一致しません。 `release/` で始まり、追加の 1 つのスラッシュを含むブランチまたはタグと一致するには、 `release/*/*`を使用します。 デプロイ ブランチの構文オプションの詳細については、「[Ruby `File.fnmatch` のドキュメント](https://ruby-doc.org/core-2.5.1/File.html#method-c-fnmatch)」を参照してください。

  > \[!NOTE]
  > 名前パターンは、ブランチまたはタグに対して個別に構成する必要があります。

### 構成された保護規則を管理者がバイパスすることを許可する

既定では、管理者は保護規則をバイパスし、特定の環境へのデプロイを強制できます。 詳しくは、「[デプロイメントのレビュー](/ja/enterprise-server@3.22/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments#bypassing-deployment-protection-rules)」をご覧ください。

また、環境へのすべてのデプロイに対して保護規則のバイパスを禁止するように環境を構成することもできます。

### カスタム展開保護ルール

> \[!NOTE]
> カスタム配置保護ルールは、現在 パブリック プレビュー 段階であり、変更される可能性があります。

独自のカスタム保護規則を有効にして、サードパーティ サービスを使ったデプロイを制御できます。 たとえば、Datadog、Honeycomb、ServiceNow などのサービスを使用し、GitHub への展開に対して自動承認を提供できます。 詳細については、 [AUTOTITLE を](/ja/enterprise-server@3.22/actions/how-tos/deploy/configure-and-manage-deployments/create-custom-protection-rules)参照してください。

カスタム デプロイ保護規則を作成してリポジトリにインストールすると、リポジトリ内の任意の環境に対してカスタム デプロイ保護規則を有効にすることができます。 カスタム配置保護規則の構成と有効化の詳細については、「[カスタム デプロイ保護規則の構成](/ja/enterprise-server@3.22/actions/how-tos/deploy/configure-and-manage-deployments/configure-custom-protection-rules)」を参照してください。

## 環境シークレット

環境に保存されたシークレットは、その環境を参照するワークフロージョブからのみ利用できます。 環境が承認を必要とするなら、ジョブは必須のレビュー担当者の一人が承認するまで環境のシークレットにアクセスできません。 シークレットの詳細については、「[シークレット](/ja/enterprise-server@3.22/actions/concepts/security/secrets)」を参照してください。

> \[!NOTE]
> セルフホスト ランナーで実行されるワークフローは、環境を使っている場合でも、分離されたコンテナーでは実行されません。 環境シークレットは、リポジトリおよび Organization シークレットと同じレベルのセキュリティで処理する必要があります。 詳しくは、「[セキュリティで保護された使用に関するリファレンス](/ja/enterprise-server@3.22/actions/reference/security/secure-use#hardening-for-self-hosted-runners)」をご覧ください。

## 環境変数

環境に保存された変数は、その環境を参照するワークフロー ジョブからのみ利用できます。 これらの変数には、[`vars`](/ja/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#vars-context) コンテキストを使用してのみアクセスできます。 詳しくは、「[変数に情報を格納する](/ja/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables)」をご覧ください。