

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CodeDeploy 与集成 GitHub
<a name="integrations-partners-github"></a>

CodeDeploy 支持 [GitHub](https://github.com/about)，一种基于 Web 的代码托管和共享服务。 CodeDeploy 可以将存储在存储 GitHub库或 Amazon S3 存储桶中的应用程序修订部署到实例。 CodeDeploy 仅 GitHub 支持 EC2/本地部署。

**Topics**
+ [从中部署 CodeDeploy 修订 GitHub](#github-deployment-steps)
+ [GitHub 行为与 CodeDeploy](#github-behaviors)

## 从中部署 CodeDeploy 修订 GitHub
<a name="github-deployment-steps"></a>

要将 GitHub 存储库中的应用程序修订部署到实例，请执行以下操作：

1. 创建 CodeDeploy 与您要部署的 Amazon EC2 实例类型兼容的修订版。

   要创建兼容版本，请按照[为 CodeDeploy 规划修订](application-revisions-plan.md)和[将应用程序规范文件添加到修订版中 CodeDeploy](application-revisions-appspec-file.md)中的说明执行操作。

1. 使用 GitHub 帐户将您的修订添加到 GitHub 存储库中。

   要创建 GitHub 账户，请参阅[加入 GitHub](https://github.com/join)。要创建 GitHub 存储库，请参阅[创建存储库](https://help.github.com/articles/create-a-repo/)。

1. 使用 CodeDeploy 控制台中的 “**创建部署**” 页面或 AWS CLI **create-deployment**命令将您的修订从 GitHub 存储库部署到配置为在 CodeDeploy部署中使用的目标实例。

   如果要调用该**create-deployment**命令，则必须先使用控制台的 “**创建部署**” 页面授予 GitHub 代表指定应用程序的首选 GitHub账户与之交互的 CodeDeploy 权限。每个应用程序只需进行一次这样的操作。

   要了解如何使用 “**创建部署**” 页面从 GitHub 存储库进行部署，请参阅[使用创建部署 CodeDeploy](deployments-create.md)。

   要了解如何调用**create-deployment**命令从 GitHub 存储库进行部署，请参阅[创建 EC2/本地计算平台部署（CLI）](deployments-create-cli.md)。

   要了解如何准备用于 CodeDeploy 部署的实例，请参阅[使用以下实例 CodeDeploy](instances.md)。

有关更多信息，请参阅 [教程： CodeDeploy 用于从中部署应用程序 GitHub](tutorials-github.md)。

## GitHub 行为与 CodeDeploy
<a name="github-behaviors"></a>

**Topics**
+ [GitHub 使用中的应用程序进行身份验证 CodeDeploy](#behaviors-authentication)
+ [CodeDeploy 与私有和公共 GitHub 存储库的互动](#behaviors-interactions-private-and-public)
+ [CodeDeploy 与组织管理的存储库 GitHub 交互](#behaviors-interactions-organization-managed)
+ [使用自动部 CodePipeline 署 CodeDeploy](#behaviors-deploy-automatically)

### GitHub 使用中的应用程序进行身份验证 CodeDeploy
<a name="behaviors-authentication"></a>

在您授予与之交互的 CodeDeploy 权限后 GitHub，该 GitHub 账户与应用程序之间的关联将存储在中 CodeDeploy。您可以将应用程序关联到其他 GitHub 帐户。您也可以撤消与之交互 CodeDeploy 的权限。 GitHub

**要将 GitHub 账户关联到应用程序 CodeDeploy**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/codede](https://console.aws.amazon.com/codedeploy) ploy 上打开 CodeDeploy 控制台。
**注意**  
使用您在[入门 CodeDeploy](getting-started-codedeploy.md)中设置的同一用户登录。

1. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 选择您要关联到其他 GitHub账户的应用程序。

1. 如果您的应用程序没有部署组，请选择**创建部署组**来创建一个部署组。有关更多信息，请参阅 [使用创建部署组 CodeDeploy](deployment-groups-create.md)。需要部署组在下一步中选择**创建部署**。

1.  从**部署**中，选择**创建部署**。
**注意**  
您无需创建新的部署。这是目前将其他 GitHub 账户关联到应用程序的唯一方法。

1.  在 **“部署设置”** 中，对于 “**修订类型**”，选择 “**我的应用程序存储在” 中 GitHub**。

1. 请执行以下操作之一：
   + 要创建 AWS CodeDeploy 应用程序与 GitHub帐户的连接，请在单独的 Web 浏览器选项卡 GitHub 中注销。在**GitHub 令牌名称**中，键入用于标识此连接的名称，然后选择 **Connect to GitHub**。网页会提示您授权 CodeDeploy与您的应用程序进行交互。 GitHub 继续执行步骤 10。
   + 要使用已创建的连接，请在**GitHub令牌名称中选择其名称**，然后选择 **Connect to GitHub**。继续执行步骤 8。
   + 要创建与其他 GitHub 帐户的连接，请在单独的 Web 浏览器选项卡 GitHub 中注销。在**GitHub 令牌名称**中，键入用于标识连接的名称，然后选择 **Connect to GitHub**。网页会提示您授权 CodeDeploy 与您的应用程序进行交互。 GitHub 继续执行步骤 10。

1. 如果您尚未登录 GitHub，请按照 “**登录**” 页面上的说明使用要关联应用程序的 GitHub 帐户登录。

1. 选择 “**授权应用程序**”。 GitHub CodeDeploy授予 GitHub 代表所选应用程序的登录 GitHub 账户与之交互的权限。

1. 如果您不需要创建部署，请选择 **Cancel**。

**撤销与之交互 CodeDeploy 的权限 GitHub**

1. [GitHub ](https://github.com/dashboard)使用您要撤销 AWS CodeDeploy 权限的 GitHub 账户的凭据登录。

1. 打开 “ GitHub [应用程序](https://github.com/settings/applications)” 页面，**CodeDeploy**在已授权的应用程序列表中找到，然后按照撤消应用程序授权的 GitHub 步骤进行操作。

### CodeDeploy 与私有和公共 GitHub 存储库的互动
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy 支持从私有和公共 GitHub存储库部署应用程序。当您代表您 CodeDeploy 授予访问权限时， CodeDeploy将拥有 GitHub 对您的 GitHub 账户有权访问的所有私有 GitHub 仓库的读写权限。但是， CodeDeploy 只能从 GitHub 存储库中读取。它不会写入您的任何私有 GitHub 存储库。

### CodeDeploy 与组织管理的存储库 GitHub 交互
<a name="behaviors-interactions-organization-managed"></a>

默认情况下，由组织管理的 GitHub 存储库（而不是您账户自己的私有或公共存储库）不授予对第三方应用程序的访问权限，包括 CodeDeploy。如果在中启用了组织的第三方应用程序限制， GitHub 并且您尝试从其 GitHub 存储库部署代码，则部署将失败。可通过两种方式解决此问题。
+ 作为组织成员，您可以要求组织所有者批准对 CodeDeploy 的访问权。申请此访问权限的步骤取决于您是否已经 CodeDeploy 为个人账户授权：
  + 如果您的账户已获得 CodeDeploy 授权访问权限，请参阅[请求组织批准您的授权应用程序](https://help.github.com/articles/requesting-organization-approval-for-your-authorized-applications/)。
  + 如果您尚未 CodeDeploy 在账户中获得访问权限，请参阅[请求组织批准第三方应用程序](https://help.github.com/articles/requesting-organization-approval-for-third-party-applications/)。
+ 组织所有者可禁用组织的所有第三方应用程序限制。有关信息，请参阅[禁用组织的第三方应用程序限制](https://help.github.com/articles/disabling-third-party-application-restrictions-for-your-organization/)。

有关更多信息，请参阅[关于第三方应用程序限制](https://help.github.com/articles/about-third-party-application-restrictions/)。

### 使用自动部 CodePipeline 署 CodeDeploy
<a name="behaviors-deploy-automatically"></a>

 CodePipeline 只要源代码发生变化，您就可以从触发部署。有关更多信息，请参阅 [CodePipeline](https://aws.amazon.com/codepipeline/)。