Open7
deny-self-approve の改善
- JavaScript Action への書き換え
- 基本 GitHub Actions で使う前提
- Go binary のインストールのオーバーヘッドを無視できない
-
ignored-approvers
: 雑に管理されている Machine User による approve を無視 -
forbidden-approvers
:ignored-approvers
より強いオプション。コマンドを失敗させる -
reliable-users
: 信用できる App や Machine User -
unreliable-users
: 管理が雑な Machine User や App- approve を無視
- PR 作成者の場合 2 approve を要求
- Devin のような App の PR の場合、 2 approve 欲しい
- ただし、 Renovate や Dependabot のような信頼できる App の場合 1 approve でも OK
- PR コメント
- github-comment metadata を付与
- reliable-users
- author: 1 approve
- committer:
- approver
- unreliable-users
- author: 2 approve
- committer
- approver: 無視
deny-self-approve validate \
-reliable-users "dependabot[bot],renovate[bot]" \
-unreliable-users "foobot"
- 信頼できる App を除き、 App が作成した PR には 2 approve を要求
- 信頼できる App を指定する
--reliable-apps
を追加
- 信頼できる App を指定する
- 信頼できない Machine User の PR には 2 approve を要求
- 信頼できない Machine User の Approve は無視する
- 信頼できない Machine User を指定する
--unreliable-machine-users
を追加
- 信頼できない Machine User を指定する
deny-self-approve validate \
--reliable-apps "dependabot[bot],renovate[bot]" \
--unreliable-machine-users "foo-bot"
- 信頼できない App や Machine User がコミットしていたら 2 approve を要求
- approver が App を悪用して commit を push している可能性があるから
- 署名を要求 <- これは branch rulesets でやればいいから除外
-
codeowner 権限を持つ Machine User を悪用して approve
- 信頼できない machine user の approve を無視すればよい
-
自分以外が作成した PR に自分で commit を追加して自分で approve
- committer 以外の approve を要求すれば良い
-
自分以外が作成した PR に Machine User や bot で commit を追加して自分で approve
- 信頼できない machine user や app が commit してたら 2 approve 要求すれば良い
-
link してない commit で悪意のあるコードを commit
- link してない commit が含まれてたら失敗させれば良い
-
他人へなりすまして commit して approve
- branch ruleset で署名を必須にし、なりすませないようにする
deny-self-approve の workflow 改ざん対策
- workflow の codeowner を設定
全リポジトリに適用
- required workflow で実行