我正在尝试在AWS Codepipeline中设置持续部署管道.
在创建管道时,我将"Source provider"作为GitHub提供,然后连接到GitHub.我可以在创建管道页面的"存储库"下拉列表中看到我的公共存储库.但是我无法在此下拉列表中看到我的组织的私人存储库.我在组织中有写访问权限.
如何使AWS Codepipeline可以访问我的组织存储库.
AWS CodePipeline需要两个GitHub的范围进行运作,如部分中列出的GitHub内与AWS CodePipeline产品及服务集成:源操作集成:
[...]您可以通过创建新管道或编辑现有管道来连接到GitHub存储库.第一次将GitHub存储库添加到管道时,将要求您授权AWS CodePipeline访问您的存储库.为了与GitHub集成,AWS CodePipeline使用OAuth令牌,并且需要两个GitHub范围:
admin:repo_hook
用于检测何时提交和推送对存储库的更改,以及repo
用于从公共和私有存储库读取和提取工件到管道.有关GitHub范围的更多信息,请参阅GitHub Developer API Reference.
对于GitHub帐户有权访问的所有存储库,都配置了对AWS CodePipeline的访问权限; 它当前无法配置为单个存储库.
[强调我的]
现在,虽然您可能已经这样做了,但您的组织可能已设置为默认情况下不授予访问权限(虽然这在授权新应用程序/服务时可见且可调,但很容易被忽略) - 这是RESP.GitHub工具提示:
在所有者授予访问权限之前,应用程序无法访问组织的私有数据或修改其公共数据.
如果您是组织的所有者,则可以通过执行引用的CodePipeline GitHub文档中概述的反向说明来明确授予访问权限:
您可以通过选择"设置",选择"应用程序",然后在"授权的应用程序"下,在授权应用程序列表中查找AWS CodePipeline并选择"撤消",从GitHub撤消此访问权限.[...]
也就是说,转到您的GitHub配置文件=>设置=>应用程序=> AWS CodePipeline,然后单击Grant access
每个适用组织的按钮.
您的组织可能需要执行以下步骤(尽管取决于配置)。
在Github上,
单击您的个人资料头像,然后转到“设置”。
从菜单转到“应用程序”。
选择“授权的OAuth应用”标签。
选择CodePipeline,为其授予组织访问权限。