管理GitHub组织、其团队、仓库权限等
项目描述
GitHub Organization Manager
一个轻量级工具,帮助管理GitHub组织、其成员、团队、仓库权限等。
基本原理:所有设置都位于YAML配置文件中,这些设置将在运行此工具期间生效。
功能
- 管理GitHub组织所有者
- 管理GitHub团队、其成员、维护者和设置
- 支持父子团队
- 管理团队在组织仓库上的权限
- 邀请尚未加入组织的成员
- 警告未管理的团队
- 警告不属于任何团队的组织成员
- 处理个人协作者对仓库的权限
工具的哲学
- 所有相关配置都应该在YAML配置文件中完成,不应在GitHub UI中执行任何操作。
- 所有仓库权限都应该由团队成员管理。不建议使用外部协作者和单个权限。
- 所有团队都应该由此工具管理。虽然它可以处理未管理的团队,但这不是优先事项,可能会导致警告。
是否缺少功能?请检查是否已作为问题发布,如果没有,请创建一个。
安装
依赖:Python 3.10或更高版本
安装: pip3 install github-org-manager
您还可以考虑使用如 pipx
的辅助工具,以避免系统中的依赖混乱。
之后,您可以使用命令 gh-org-mgr
运行此工具。使用 --help
标志可以了解所需的和可用的命令。
配置
在 config/example
内,您可以找到一个示例配置,这将帮助您理解结构。
app.yaml
:运行此工具所需的配置org.yaml
:组织范围内的配置teams/*.yaml
:与您组织团队有关的配置。
您可能还感兴趣的是 OpenRail 协会组织的实时配置。
运行程序
您可以使用命令 gh-org-mgr
执行程序。gh-org-mgr --help
显示所有可用参数和选项。
同步示例
gh-org-mgr sync -c myorgconf
:同步 GitHub 组织的设置与指定配置路径(myorgconf
)中的本地配置。这可能创建新的团队、移除/添加成员以及更改权限。gh-org-mgr sync -c myorgconf --dry
:与上述相同,但不进行任何修改。非常适合测试本地配置并查看其潜在影响。gh-org-mgr sync -c myorgconf --debug
:第一个示例,但显示完整的调试信息。
设置团队示例
gh-org-mgr setup-team -n "My Team Name" -c myorgconf
:为此团队名称创建团队配置。将创建文件myorgconf/teams/my-team-name.yaml
,或者在文件已存在时提供选项。gh-org-mgr setup-team -n "My Team Name" -f path/to/myteam.yaml
:为此团队名称创建团队配置,并强制将其写入指定的文件。如果文件已存在,将提供一些选项。
许可证
此存储库的内容受 Apache 2.0 许可证 的许可。
可能包含不同但兼容的许可证或来自不同版权所有者的组件。该项目符合 REUSE 规范,这使得这些部分变得透明。您可以在 LICENSES 目录中找到所有使用的许可证。
该项目由 OpenRail 协会 启动。欢迎您 贡献!