[GitHub] 使用 Audit log 找出誰修改了 GitHub 組織的設定
今天突然有人回報沒有權限存取 GitHub 專案,
不過同事間互相問了一下,似乎也沒有人去動了什麼。
稍微檢查了一下,GitHub organization (組織) 下的 repo 預設權限 (permission),
從 Write 被改成了 Read,不過不知道是誰改的…
看了一下,GitHub 有 Audit log 可以檢視所有的變更
(現在覺得這個東西真的很重要,尤其是出事的時候…)
到 GitHub organization > Settings,左側欄選 Logs > Audit log,
就可以看到這個組織下面,大家做過的所有事情,
不管是建立 PR、修改設定等等都看的到:
不過當然全部都列出來時,也很難找到想要的事件…
如果很明確知道要找的事件類型的話,可以在 Filters 欄輸入想過濾的事件,
也可以參考 Reviewing the audit log for your organization 來查可用的語法。
但像我也不太確定「修改 organization 的 repo 預設權限」這到底算是哪一種事件,
只大概知道可能是前一天到今天發生的事 (因為是今天開始有問題回報),
所以用蠢一點的方法來過濾:把不要的事件過濾掉~
像是我看到 Audit log 裡有一堆 repo.register_self_hosted_runner 的事件,
這明顯和我在找的無關,
就可以用 -action:repo.register_self_hosted_runner
把它排除。
陸續把一些無關的排除後,我的 Filter 變成了這麼長:
-action:repo.register_self_hosted_runner -action:pull_request_review -action:issue_comment -action:org.update_actions_secret -action:pull_request -action:workflows -action:repo.update_actions_secret
這時也終於找到了正確的事件 org.update_default_repository_permission
:
找到人之後,就可以確認修改的原因啦~
Audit log 真的很重要呢~~