保持常青:我们如何在共享组织中自动化安全访问与仓库卫生
GitHub 员工在共享组织里和外部客户、合作伙伴一起做项目,时间一长,谁还需要访问权限、哪些仓库已经没人用了,靠人工记录很难跟上。他们做了一个叫 Evergreen 的 GitHub App,用 GitHub 自带的定时任务、webhook 和 issue 来干活:每季度给每个仓库开一张清单 issue 让人勾选保留谁,没人回复就默认收回权限;长期没人动的仓库会先警告、再归档,而且从不删除内容。所有状态存成 git 里的 JSON 文件,改动记录本身就是审计日志。这样仓库管理员不用再维护表格,也能保证权限不会一直留着。
文中可用工具
- Evergreen自动审查外部协作者访问权限并归档长期无活动仓库的 GitHub App
- GitHub Actions按季度定时触发工作流,作为 Evergreen 的时钟
- repository_dispatchGitHub 事件类型,用于唤醒 Evergreen 执行任务
- workflow_dispatch支持手动触发工作流步骤
- GitHub webhooks监听 issues.closed 等事件并驱动后续操作
- GitHub custom properties设置 evergreen_repo_owner 来指定仓库负责人
- Copilot可通过复制粘贴快速回滚误操作
评论 · 分享第一个看法