[GitHub] ルールセットをエクスポートおよびインポートできるようになっていました(Beta版)

2024.06.05

こんにちは、製造ビジネステクノロジー部の若槻です。

昨年の 10 月ですが、GitHub のルールセット(ブランチ保護ルール)をエクスポートおよびインポートする機能がパブリックベータとして追加されていました。

これにより、複数のリポジトリへの同じブランチ保護設定の適用や、ルールセットのバックアップが簡単にできるようになりました。

ルールセットのエクスポート

作成済みのルールセットのメニューで[Export ruleset]をクリックします。

するとルールセットの名前で設定が JSON 形式でダウンロードされます。

json ファイルの中身は以下のようになります。

デフォルトブランチ保護.json

{
  "id": 854205,
  "name": "デフォルトブランチ保護",
  "target": "branch",
  "source_type": "Repository",
  "source": "XXXXXXXX/eslint-config-classmethod",
  "enforcement": "active",
  "conditions": {
    "ref_name": {
      "exclude": [],
      "include": [
        "~DEFAULT_BRANCH"
      ]
    }
  },
  "rules": [
    {
      "type": "deletion"
    },
    {
      "type": "non_fast_forward"
    },
    {
      "type": "pull_request",
      "parameters": {
        "required_approving_review_count": 1,
        "dismiss_stale_reviews_on_push": true,
        "require_code_owner_review": false,
        "require_last_push_approval": true,
        "required_review_thread_resolution": true
      }
    }
  ],
  "bypass_actors": []
}

この JSON ファイルをそのままバックアップとすることができますし、他のリポジトリにインポートすることで、同じルールセットを適用することができます。

ルールセットのインポート

ルールセットのメニューで[New ruleset > Import a ruleset]をクリックします。すると、ファイル選択ダイアログが表示されるので、エクスポートした JSON ファイルを選択します。

すると、インポートしたルールセットが表示されます。必要に応じて設定を変更します。

[Create]をクリックしてルールセットを作成します。

インポートによりルールセットを作成することができました。

ルールセットの Revert は上手く動かなかった

ちなみに作成済みのルールセットの変更履歴から Revert を行うことも可能となったと冒頭のアップデート情報にありましたが、私の環境では上手く動作しませんでした。

ルールセット画面の下方の[Revert changes]をクリックします。

するといくつか変更をした上で保存したはずなのに、No changes have been made と表示されてしまいます。

Revert 機能があるとルールセットの変更履歴を管理する上で非常に便利なので、今後のアップデートで改善されることを期待します。

おわりに

GitHub のリポジトリルールセットをエクスポートおよびインポートできるようになっていたので、試してみた内容をご紹介しました。

以上