設定リファレンス

repo - リポジトリ設定

フィールド 説明
description string リポジトリの説明
homepage string ホームページ URL
visibility public | private | internal リポジトリの可視性
allow_merge_commit boolean マージコミットを許可
allow_rebase_merge boolean リベースマージを許可
allow_squash_merge boolean スカッシュマージを許可
delete_branch_on_merge boolean マージ後にブランチを自動削除
allow_update_branch boolean PR ブランチの更新を許可

topics - リポジトリトピック

トピック文字列の配列:

topics:
  - javascript
  - nodejs
  - cli

labels - Issue ラベル

フィールド 説明
replace_default boolean 設定にないラベルを削除
items array ラベル定義のリスト
items[].name string ラベル名
items[].color string 16進数カラー(# なし)
items[].description string ラベルの説明

branch_protection - ブランチ保護ルール

branch_protection:
  <ブランチ名>:
    # プルリクエストレビュー
    required_reviews: 1          # 必要な承認数
    dismiss_stale_reviews: true  # 新しいコミットで承認を却下
    require_code_owner: false    # CODEOWNERS のレビューを必須

    # ステータスチェック
    require_status_checks: true  # ステータスチェックを必須
    status_checks:               # 必須のステータスチェック名
      - ci/test
    strict_status_checks: false  # 最新ブランチを必須

    # デプロイメント
    required_deployments:        # 必須のデプロイ環境
      - production

    # コミット要件
    require_signed_commits: false # 署名付きコミットを必須
    require_linear_history: false # マージコミットを禁止

    # プッシュ/マージ制限
    enforce_admins: false        # 管理者にも適用
    restrict_creations: false    # ブランチ作成を制限
    restrict_pushes: false       # プッシュを制限
    allow_force_pushes: false    # 強制プッシュを許可
    allow_deletions: false       # ブランチ削除を許可

env - 環境変数とシークレット

リポジトリの変数とシークレットを管理:

env:
  # デフォルト値付きの変数(.env ファイルで上書き可能)
  variables:
    NODE_ENV: production
    API_URL: https://api.example.com
  # シークレット名(値は .env ファイルまたは対話入力から)
  secrets:
    - API_TOKEN
    - DEPLOY_KEY
フィールド 説明
variables map リポジトリ変数のキーと値
secrets array 管理するシークレット名のリスト

.env ファイルの使用

実際の値を格納する .github/.env ファイル(gitignore 推奨)を作成:

# .github/.env
NODE_ENV=staging
API_URL=https://staging-api.example.com
API_TOKEN=your-secret-token
DEPLOY_KEY=your-deploy-key

優先順位: .env ファイルの値は YAML のデフォルト値を上書きします。

コマンド

# 変数/シークレットの変更をプレビュー
gh repo-settings plan --env --secrets

# 変数とシークレットを適用
gh repo-settings apply --env --secrets

# 設定にない変数/シークレットを削除(同期モード)
gh repo-settings apply --env --secrets --sync

シークレットの値が .env にない場合、apply 時に対話形式で入力を求められます。

actions - GitHub Actions 権限設定

actions:
  # GitHub Actions の有効/無効
  enabled: true

  # 使用可能なアクション: "all", "local_only", "selected"
  allowed_actions: selected

  # allowed_actions が "selected" の場合
  selected_actions:
    github_owned_allowed: true    # GitHub 製アクションを許可
    verified_allowed: true        # 認証済み作成者のアクションを許可
    patterns_allowed:             # 許可するアクションのパターン
      - "actions/*"
      - "github/codeql-action/*"

  # デフォルトの GITHUB_TOKEN 権限: "read" または "write"
  default_workflow_permissions: read

  # GitHub Actions による PR 作成/承認を許可
  can_approve_pull_request_reviews: false
フィールド 説明
enabled boolean GitHub Actions を有効にする
allowed_actions all | local_only | selected 許可するアクション
selected_actions.github_owned_allowed boolean GitHub 製アクションを許可
selected_actions.verified_allowed boolean 認証済み作成者を許可
selected_actions.patterns_allowed array 許可するアクションのパターン
default_workflow_permissions read | write GITHUB_TOKEN のデフォルト権限
can_approve_pull_request_reviews boolean Actions による PR 承認を許可

pages - GitHub Pages 設定

pages:
  # ビルドタイプ: "workflow" (GitHub Actions) または "legacy" (ブランチベース)
  build_type: workflow

  # ソース設定(legacy ビルドタイプの場合のみ)
  source:
    branch: main
    path: /docs  # "/" または "/docs"
フィールド 説明
build_type workflow | legacy Pages のビルド方法
source.branch string legacy ビルドのブランチ
source.path / | /docs ブランチ内のパス