我正在尝试在AWS Codepipeline中设置持续部署管道。
在创建管道时,我提供了#34; Source provider"作为GitHub然后连接到GitHub。 我能够在" Repository"中看到我的公共存储库。在“创建管道”页面中下拉列表。但是我无法在此下拉列表中看到我的组织的私有存储库。 我在组织中有写访问权。
如何让AWS Codepipeline访问我的组织存储库。
答案 0 :(得分:16)
AWS CodePipeline需要两个GitHub scopes进行操作,如Product and Service Integrations with AWS CodePipeline: Source Action Integrations中的 GitHub 部分所述:
[...]你可以连接到 GitHub存储库通过创建新管道或编辑 现有的。 第一次将GitHub存储库添加到 管道,您将被要求授权AWS CodePipeline访问 您的存储库。要与GitHub集成,AWS CodePipeline使用 OAuth令牌并需要两个GitHub范围:
admin:repo_hook
,即 用于检测何时提交并推送更改 存储库和repo
,用于从中读取和提取工件 公共和私有存储库成为管道。欲获得更多信息 关于GitHub范围,请参阅GitHub Developer API Reference 使用 for AWS CodePipeline是为所有存储库配置的 GitHub帐户有权访问;它目前无法配置 个人资料库。
[强调我的]
现在,虽然您可能已经这样做了,但您的组织可能已设置为默认情况下不授予访问权限(虽然在授权新应用程序/服务时这是可见且可调整的,但很容易被忽略) - 这是resp。 GitHub工具提示:
在所有者授予访问权限之前,应用程序无法访问组织的私有数据或修改其公共数据。
如果您是组织的所有者,则可以通过执行引用的CodePipeline GitHub文档中列出的反向说明来明确授予访问权限:
您可以选择“设置”,从GitHub撤消此访问权限 应用程序,然后在授权应用程序下查找AWS CodePipeline在授权应用程序列表中并选择 撤消。 [...]
也就是说,转到您的GitHub个人资料=>设置=>应用程序=> AWS CodePipeline,然后单击每个适用组织的Grant access
按钮。
答案 1 :(得分:6)
您需要具有管理员/所有者级别才能向您的组织存储库授予AWS Codepipeline访问权限。
我拍了一些截图以进行澄清。
步骤:
1.转到https://github.com/settings/applications。与按Profile Avatar,在下拉菜单中按“设置”,然后在左侧菜单中按“应用程序”相同。
2.按顶部菜单上的“授权的OAuth应用”。
3.单击AWS CodePipeline项目。
4.将出现一个页面,显示权限以及组织访问权限。
5.按授予按钮,您的组织名称旁边将出现一个复选标记。
答案 2 :(得分:3)
对我来说,以下步骤有效。
:)
答案 3 :(得分:1)
我们遇到了同样的问题。 此操作需要Repo Admin级别权限。因此,您必须从您的组织请求管理员级别访问回购。 我们最终在私人org repo中创建了一个具有admin repo的服务用户,然后我们可以访问CI工具。