こんにちは、製造ビジネステクノロジー部の若槻です。
昨年の 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 のリポジトリルールセットをエクスポートおよびインポートできるようになっていたので、試してみた内容をご紹介しました。
以上