发布于 2026-01-06 3 阅读
0

使用 Pulumi 进行 GitHub 访问治理。DEV 全球展示挑战赛,由 Mux 呈现:展示你的项目!

使用 Pulumi 进行 GitHub 访问治理。

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

这是参加Pulumi 部署和文档挑战赛的作品:用 Pulumi 和 GitHub 发挥创意

介绍

大规模管理 GitHub 用户访问权限并非易事,尤其是在需要管理组织内多个代码库、团队和权限时。而当需要确保安全性和合规性时,挑战则更大。

Pulumi 正是为此而生。它是一款强大的基础设施即代码 (IaC) 工具,允许您使用熟悉的编程语言(例如 Python、TypeScript 和 Go)定义和实施访问策略。您无需手动管理权限,即可通过代码实现一切自动化,从而提高效率和可扩展性。

我开发的产品:自动化 GitHub 访问管理

该项目旨在创建一个全自动的简化权限管理系统,从而无需在 GitHub 界面中手动配置设置。

该解决方案允许您在一个简单的 YAML 文件中定义用户角色和存储库访问配置。Pulumi 结合 Python 和 GitHub Actions,可自动执行这些访问控制的配置和实施。

这种方法非常适合初创公司、企业、开源项目以及任何寻求轻松便捷、可扩展的 GitHub 访问管理解决方案的团队。

在线演示:项目设置与运行

注意: 请确保已安装 Pulumi。如果尚未安装,请参考 https://www.pulumi.com/docs/iac/download-install
按照以下步骤操作即可查看项目运行效果:

第一步:克隆代码库

git clone https://github.com/Ajanhari/pulumi-github-access-governance.git
cd pulumi-github-access-governance
Enter fullscreen mode Exit fullscreen mode

步骤 2:设置 Pulumi 并安装依赖项

pip install pulumi pulumi-github pyyaml
Enter fullscreen mode Exit fullscreen mode

步骤 3:为您的 GitHub 组织配置 Pulumi

# Login to Pulumi locally
pulumi login --local

# Set GitHub Personal Access Token (Replace with actual token)
pulumi config set --secret githubToken "<YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>"

# Initialize a new Pulumi stack named "dev"
pulumi stack init dev

# Set GitHub organization/owner (Replace 'YourOrgName' with your actual org)
pulumi config set github:owner "YourOrgName"

# Set GitHub API Base URL
pulumi config set github:baseUrl "https://api.github.com"
Enter fullscreen mode Exit fullscreen mode

注意:请将 `<yourOrgName>` 替换为您的实际 GitHub 个人访问令牌。请将此令牌视为机密信息并妥善保管。请将 `<yourOrgName>` 替换为您的 GitHub 组织名称。

步骤 4:修改users.yaml以分配角色

修改 users.yaml 文件以定义角色并将用户分配给存储库。

repositories:
  repo1:
    admin:
      - Ajanthan
      - Sachin
    maintain:
      - maintainer1
    write:
      - Varun
      - dev2
    triage: []
    read: []
  repo2:
    admin:
      - Ajanthan
      - Sachin
    write:
      - Varun
Enter fullscreen mode Exit fullscreen mode

步骤 5:部署变更

pulumi up --yes
Enter fullscreen mode Exit fullscreen mode

步骤 6:在 GitHub 上验证

请检查您的 GitHub 仓库设置,以确认访问权限已更新。

步骤 7:使用 GitHub Actions 实现自动化

将更新后的users.yaml文件推送到存储库,然后让 GitHub Actions 处理配置。

git add users.yaml
git commit -m "Updated user roles"
git push origin main
Enter fullscreen mode Exit fullscreen mode

GitHub Actions 将自动应用这些更改。

项目仓库

https://github.com/Ajanhari/pulumi-github-access-governance

主要优势

集中式用户管理:在单个 YAML 文件中定义和管理所有访问权限。
自动化访问控制:无需手动配置,减少人为错误并节省时间。
可扩展性:旨在高效处理数百个代码库的访问管理。
合规性和安全性:利用 GitHub Actions 进行审计跟踪和日志记录,增强合规性和安全性。

结论

如果您希望简化跨多个代码库的 GitHub 访问权限管理,Pulumi 提供了一个强大而高效的解决方案。Pulumi 利用基础设施即代码 (IaC) 的原则,简化权限管理,增强可扩展性,并提高 GitHub 访问控制的可靠性。这种方法可以节省时间并降低风险,使您的团队能够专注于开发和创新。

如有任何疑问,请在评论区留言。我很乐意为您提供帮助。

注意:此代码已在 GitHub 企业版帐户中测试通过。

文章来源:https://dev.to/ajanthan_hr_c019bb2b72c79/github-access-governance-with-pulumi-4g7e