33

我正在尝试在 AWS Codepipeline 中设置持续部署管道。

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

如何让 AWS Codepipeline 有权访问我的组织存储库。

4

4 回答 4

29

AWS CodePipeline的操作需要两个GitHub 范围,如与 AWS CodePipeline 的产品和服务集成中的 GitHub 部分所述:源操作集成

[...] 您可以通过创建新管道或编辑现有管道连接到 GitHub 存储库。首次将 GitHub 存储库添加到管道时,系统会要求您授权 AWS CodePipeline 访问您的存储库。为了与 GitHub 集成,AWS CodePipeline 使用 OAuth 令牌并需要两个 GitHub 范围:admin:repo_hook用于检测您何时已提交更改并将更改推送到存储库,以及repo用于从公共和私有存储库读取工件并将其拉入管道。有关 GitHub 范围的更多信息,请参阅GitHub 开发人员 API 参考
为该 GitHub 账户有权访问的所有存储库配置了 AWS CodePipeline 的访问权限; 目前无法为单个存储库配置它。
[强调我的]

现在,虽然您可能已经这样做了,但您的组织可能已设置为默认不授予访问权限(虽然在授权新应用程序/服务时这是可见且可调整的,但很容易被忽略) - 这是分别 GitHub 工具提示:

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

如果您是组织的所有者,则可以通过执行引用的 CodePipeline GitHub 文档中概述的相反说明来明确授予访问权限:

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

也就是说,转到您的 GitHub 配置文件 => 设置 => 应用程序 => AWS CodePipeline,然后单击Grant access每个适用组织的按钮。

于 2015-09-04T13:30:55.113 回答
24

您的组织可能需要执行以下步骤(但取决于配置)。

在 Github 上,

  1. 单击您的个人资料头像。
  2. 前往设置”。
  3. 从菜单中转到“应用程序”。
  4. 转到“授权的 OAuth 应用程序”选项卡。
  5. 选择 CodePipeline
  6. 为其授予组织访问权限。
于 2019-03-04T15:38:59.847 回答
7

您需要具有管理员/所有者级别才能授予 AWS Codepipeline 访问您的组织存储库的权限。

我截取了一些屏幕截图以进行澄清。

步骤:
1. 前往https://github.com/settings/applications。这与按个人资料头像相同,按下拉菜单上的“设置”,然后按左侧菜单上的“应用程序”。
2. 按顶部菜单上的“授权的 OAuth 应用程序”。
3. 单击 AWS CodePipeline 项目。
4. 将有一个页面显示权限和组织访问权限。
5. 按授予按钮,您的组织名称旁边将出现一个复选标记。

在此处输入图像描述 授予 AWS CodePipeline 对组织的访问权限

于 2020-04-19T09:32:14.823 回答
1

我们遇到了同样的问题。此功能需要 Repo 管理员级别的权限。因此,您必须向您的组织请求对存储库的管理员级别访问权限。我们最终在私有组织仓库中创建了一个具有管理员仓库权限的服务用户,然后我们可以访问 CI 工具。

于 2016-11-11T01:28:28.423 回答