11

我正在尝试在AWS Codepipeline中设置连续部署管道。AWS CodePipeline无法访问组织的存储库

在创建管道时,我将“源提供者”提供为GitHub,然后连接到GitHub。 我可以在创建管道页面的“存储库”下拉列表中看到我的公共存储库。但是我无法在此下拉菜单中看到我的组织的私有存储库。 我在组织中拥有写权限。

如何让AWS Codepipeline可以访问我的组织存储库。

回答

8

AWS CodePipeline需要两个GitHub scopes其运作,如部分GitHub上概述内Product and Service Integrations with AWS CodePipeline: Source Action Integrations

[...]你可以通过创建一个新的管道或编辑连接到 GitHub的库 现有的。 第一次将GitHub存储库添加到 管道时,系统会要求您授权AWS CodePipeline访问您的存储库的 。要使用GitHub的整合,AWS CodePipeline使用 OAuth凭证,并需要两个GitHub的范围:admin:repo_hook,这是 使用,当你犯并推更改 库进行检测,并repo,这是用来阅读和拉文物 公共和私人存储库进入管道。有关GitHub示波器的更多信息,请参阅GitHub Developer API Reference
访问 AWS CodePipeline配置为所有存储库,其中 GitHub帐户有权访问;它目前不能配置为 单个存储库。
[重点煤矿]

现在,虽然你有可能做到这一点,有可能是您的组织设置,使其不授予默认访问(而授权时,这是可见的,可调一个新的应用程序/服务,它很容易被忽视) - 这里是resp。 GitHub工具提示:

在所有者授予访问权限之前,应用程序无法访问组织的私有数据或修改其公共数据。

只要你是该组织的所有者,你可以明确地做引用CodePipeline GitHub的文档中描述的逆指令授予访问权限:

您可以通过选择设置取消从GitHub此访问,选择 应用程序,然后在授权应用程序下,在授权应用程序列表中找到AWS CodePipeline,然后选择 撤销。 [...]

也就是说,去你的GitHub的个人资料=>设置=>应用程序=> AWS CodePipeline,然后单击Grant access按钮为每个适用的组织。

+0

嗨Steffen, 我不是该组织的所有者,但我仍然可以在AWS Codepipeline许可页面(GitHub profile => Settings => Applications => AWS CodePipeline)旁看到组织名称旁边的绿色勾号。 虽然,我可以在“组织访问”部分看到我的组织名称,但是代码管道直到无法读取组织的私人回购。 – anshul410

1

我们遇到了同样的问题。 需要Repo管理员级别权限才能生效。因此,您必须请求组织管理员级别访问回购。 我们最终创建了一个具有管理员回购权的私人组织回购的服务用户,然后我们可以访问CI工具。