这是一个基于 React + TypeScript + Vite 的前端单页应用,面向 GitHub 组织管理员,提供“看板式拖拽”界面来管理仓库对团队或直接授权个人协作者的权限。
- 输入 GitHub 个人访问令牌和组织名称,校验当前令牌是否是该组织管理员。
- 支持团队与直接授权个人协作者两类主体。
- 团队按父子层级展示,可直接管理父团队或子团队。
- 直接协作者仅展示至少被一个仓库直接授权的用户。
- 看板按权限列展示仓库:
Read、Triage、Write、Maintain、Admin、未授权。 - 每个仓库只会显示在该主体的最高有效权限列。
- 支持仓库名实时过滤,支持包含与模糊匹配。
- 支持
全部 / Public / Private / Forked预置过滤按钮,便于快速定位仓库。 - 支持 Ctrl 或 Cmd 多选卡片,并批量拖拽修改权限。
- 批量修改前会弹出确认框,执行后会展示成功/失败清单,并按真实结果回滚失败项。
- 支持重新从 GitHub 拉取数据刷新当前看板。
- PAT 与组织名称只保存在当前页面内存中。
- 不会写入
localStorage、sessionStorage、cookie或任何浏览器持久化存储。 - 页面刷新后,令牌和组织名称会失效,需要重新输入。
建议使用具备以下权限的 GitHub 个人访问令牌:
admin:orgrepo
如果当前令牌不是目标组织管理员,页面会明确提示,并阻止任何权限修改操作。
- 输入 PAT 和组织名称。
- 点击“连接组织”。
- 管理员校验通过后,系统会加载仓库、团队以及对应权限数据。
- 可在“团队”和“直接授权个人协作者”之间切换。
- 团队列表会按层级缩进显示。
- 个人协作者列表会在首次切换到该模式时按仓库聚合加载。
- 单击卡片可选中当前仓库。
- 按住 Ctrl 或 Cmd 再点击,可追加或取消多选。
- 拖拽到目标权限列后,会先弹出确认框。
- 拖到“未授权”列表示移除该主体对仓库的权限。
- 输入仓库关键字后,看板会实时过滤。
- 支持不区分大小写的包含匹配,也支持按字符顺序的模糊匹配。
- 点击“清空过滤”可以恢复完整视图。
仓库已包含 Dockerfile、.dockerignore 与 nginx.conf,可直接构建镜像并部署。
docker build -t org-repo-kanban:latest .docker run --rm -p 8080:80 org-repo-kanban:latest启动后可通过 http://localhost:8080 访问。
如需参与开发,请参阅 开发指南。