配置Azure Pipeline从GitHub托管仓库拉取时如何使用GitHub服务连接认证
可以通过已配置的OAuth类型GitHub服务连接实现认证,完全不需要手动维护个人访问令牌(PAT),具体实现方式如下:
前置准备
- 确认你创建的GitHub服务连接已开放所有Terraform模块所在仓库的读取权限
- 确认当前Pipeline已被授予使用该服务连接的权限
Pipeline配置步骤
在原有Terraform执行步骤前新增一个预配置步骤,从服务连接中获取动态生成的访问令牌,配置git全局替换规则即可。示例YAML如下:
steps: # 配置GitHub动态认证规则 - task: Bash@3 displayName: "配置GitHub服务连接认证" env: # 此处替换为你实际创建的GitHub服务连接名称 GITHUB_TOKEN: $(你的GitHub服务连接名称.AccessToken) inputs: targetType: 'inline' script: | git config --global url."https://oauth2:$GITHUB_TOKEN@github.com".insteadOf https://github.com # 后续正常执行你原有的Terraform相关步骤即可 - task: TerraformInstaller@0 inputs: terraformVersion: '你使用的Terraform版本号' - task: TerraformTaskV3@3 inputs: provider: 'azurerm' command: 'init' # 补充你原有terraform init的其余配置 - task: TerraformTaskV3@3 inputs: provider: 'azurerm' command: 'plan' # 补充你原有terraform plan的其余配置
注意事项
- GitHub使用令牌进行HTTPS认证时固定用户名为
oauth2,无需修改 - 服务连接的访问令牌由Azure DevOps在每次Pipeline运行时动态生成,运行结束后自动失效,无需手动更新维护
- 如果你的Terraform模块存放在GitHub企业版实例中,只需将配置中的
github.com替换为你的企业版GitHub域名即可
内容的提问来源于stack exchange,提问作者Ranika Nisal
相关产品推荐
相关产品推荐

