

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# GitHub e acesso ao GitHub Enterprise Server em CodeBuild
<a name="access-tokens-github-overview"></a>

Pois GitHub, você pode usar um token de acesso pessoal, um OAuth aplicativo, um segredo do Secrets Manager ou uma conexão de GitHub aplicativo para acessar o provedor de origem. Para o GitHub Enterprise Server, você pode usar um token de acesso pessoal, um segredo do Secrets Manager ou uma conexão de GitHub aplicativo para acessar o provedor de origem.

**Topics**
+ [GitHub Conexões de aplicativos para GitHub um GitHub Enterprise Server](connections-github-app.md)
+ [GitHub e token de acesso do GitHub Enterprise Server](access-tokens-github.md)
+ [GitHub OAuth Aplicativo](oauth-app-github.md)

# GitHub Conexões de aplicativos para GitHub um GitHub Enterprise Server
<a name="connections-github-app"></a>

Você pode usar o GitHub aplicativo para se conectar com CodeBuild. GitHub As conexões de aplicativos são suportadas por meio de [Conexões de código da AWS](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

O acesso do provedor de origem permite que você acione uma compilação ao assinar [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html), [GitHub eventos de webhook](github-webhook.md) usar ou usar [Tutorial: Configurar um CodeBuild executor de GitHub ações hospedado](action-runner.md) em CodeBuild.

**nota**  
CodeConnections está disponível em menos regiões do que CodeBuild. Você pode usar conexões entre regiões em CodeBuild. Conexões criadas em regiões de aceitação não podem ser usadas em outras regiões. Para saber mais, consulte [Endpoints e cotas do Conexões de código da AWS](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [Etapa 1: criar uma conexão com o GitHub aplicativo (console)](#connections-github-console)
+ [Etapa 2: conceder acesso à função IAM do CodeBuild projeto para usar a conexão](#connections-github-role-access)
+ [Etapa 3: Configurar CodeBuild para usar a nova conexão](#connections-github-account-credential)
+ [Solução de problemas do GitHub aplicativo](#connections-github-troubleshooting)

## Etapa 1: criar uma conexão com o GitHub aplicativo (console)
<a name="connections-github-console"></a>

Use essas etapas para usar o CodeBuild console para adicionar uma conexão ao seu projeto no GitHub.

**Para criar uma conexão com GitHub**
+ Siga as instruções no *Guia do usuário das ferramentas do desenvolvedor* para [criar uma conexão com GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**nota**  
Em vez de criar ou usar uma conexão existente na sua conta, você pode usar uma conexão compartilhada de outra AWS conta. Para obter mais informações, consulte [Compartilhar conexões com AWS contas](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Etapa 2: conceder acesso à função IAM do CodeBuild projeto para usar a conexão
<a name="connections-github-role-access"></a>

Você pode conceder acesso à função IAM do CodeBuild projeto para usar os GitHub tokens fornecidos pela sua conexão.

**Para conceder acesso à função IAM do CodeBuild projeto**

1. Crie uma função do IAM para seu CodeBuild projeto seguindo as instruções [CodeBuild Permitir interagir com outros AWS serviços](setting-up-service-role.md) para seu CodeBuild projeto.

1. Ao seguir as instruções, adicione a seguinte política do IAM ao papel CodeBuild do seu projeto para conceder acesso à conexão.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codeconnections:GetConnectionToken",
                   "codeconnections:GetConnection"
               ],
               "Resource": [
                   "arn:aws:iam::*:role/Service*"
               ]
           }
       ]
   }
   ```

------

## Etapa 3: Configurar CodeBuild para usar a nova conexão
<a name="connections-github-account-credential"></a>

Você pode configurar uma conexão como uma credencial no nível da conta e usá-la em um projeto.

------
#### [ Console de gerenciamento da AWS ]

**Para configurar uma conexão como uma credencial de nível de conta no Console de gerenciamento da AWS**

1. Em **Source provider**, escolha **GitHub**. 

1. Em **Credencial**, siga um destes procedimentos:
   + Escolha **Credencial de origem padrão** para usar a credencial de origem padrão da conta e aplicá-la a todos os projetos.

     1. Se você não estiver conectado GitHub, escolha **Gerenciar credencial de origem padrão**.

     1. Em **Tipo de credencial**, escolha **GitHub Aplicativo**.

     1. Em **Conexão**, escolha usar uma conexão existente ou crie uma.
   + Escolha **Credencial de origem personalizada** para usar uma credencial de origem personalizada para substituir as configurações padrão da conta.

     1. Em **Tipo de credencial**, escolha **GitHub Aplicativo**.

     1. Em **Conexão**, escolha usar uma conexão existente ou crie uma.

------
#### [ AWS CLI ]

**Para configurar uma conexão como uma credencial de nível de conta no AWS CLI**
+ Abra um terminal (Linux, macOS ou Unix) ou um prompt de comando (Windows). Use o AWS CLI para executar o **import-source-credentials** comando, especificando o `--auth-type``--server-type`, e `--token` para sua conexão.

  Use o seguinte comando:

  ```
  aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
  ```

------

Você também pode configurar vários tokens para seus CodeBuild projetos. Para obter mais informações, consulte [Configurar vários tokens como credenciais no nível de origem](multiple-access-tokens.md#asm-source-credential).

## Solução de problemas com o GitHub aplicativo
<a name="connections-github-troubleshooting"></a>

As informações a seguir podem ajudá-lo a solucionar problemas comuns com o GitHub aplicativo.

**Topics**
+ [Instale o AWS conector para GitHub aplicativo em uma região indesejada](#connections-github-troubleshooting.undesired-region)
+ [A conexão do GitHub aplicativo não tem acesso aos repositórios](#connections-github-troubleshooting.repo-access)
+ [A função do IAM do AWS serviço não tem as permissões necessárias do IAM.](#connections-github-troubleshooting.iam-permissions)

### Instale o AWS conector para GitHub aplicativo em uma região indesejada
<a name="connections-github-troubleshooting.undesired-region"></a>

**Problema:** você instalou o AWS Connector GitHub do GitHub Marketplace, mas a conexão foi criada em uma região indesejada. Se você tentar reconfigurar o aplicativo no GitHub site, ele não funcionará porque o aplicativo já está instalado na sua GitHub conta.

**Possível causa:** o aplicativo já está instalado em sua GitHub conta, então você só pode reconfigurar as permissões do aplicativo.

**Solução recomendada:** você pode criar uma conexão com o ID de instalação na região desejada.

1. Abra o CodeConnections console em [https://console.aws.amazon.com/codesuite/configurações/conexões](https://console.aws.amazon.com/codesuite/settings/connections) e navegue até a região desejada usando o seletor de região na barra de navegação do AWS console.

1. Siga as instruções no *Guia do usuário das ferramentas do desenvolvedor* para [criar uma conexão com GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).
**nota**  
Como você já instalou o AWS Connector for GitHub app, você pode escolhê-lo em vez de instalar um novo aplicativo.

### A conexão do GitHub aplicativo não tem acesso aos repositórios
<a name="connections-github-troubleshooting.repo-access"></a>

**Problema:** um AWS serviço usando a conexão, como CodeBuild ou CodePipeline, relata que não tem acesso ao repositório ou que o repositório não existe. Algumas possíveis mensagens de erro incluem:
+ `Authentication required for primary source.`
+ `Unable to create webhook at this time. Please try again later.`
+ `Failed to create webhook. GitHub API limit reached. Please try again later.`

***Possível causa:** você pode estar usando o GitHub aplicativo e não ter concedido o escopo da permissão do webhook.*  
**Solução recomendada:** para conceder o escopo de permissão necessário, siga as instruções em [Navegar até o GitHub aplicativo que você deseja revisar ou modificar](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#navigating-to-the-github-app-you-want-to-review-or-modify) para configurar o aplicativo instalado. Na seção de permissões, você verá que a aplicação não tem permissão para webhooks e há uma opção para você revisar as permissões recém-solicitadas. Revise e aceite as novas permissões. Para obter mais informações, consulte [Aprovação de permissões atualizadas para um GitHub aplicativo](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app).

***Possível causa:** a conexão estava funcionando conforme o esperado, mas repentinamente não tem acesso aos repositórios.*  
**Solução possível:** comece revisando suas [autorizações](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) e [instalações](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) e, em seguida, verifique se o GitHub aplicativo está autorizado e instalado. Se a instalação do GitHub aplicativo estiver suspensa, você precisará cancelá-la. Se o GitHub aplicativo não estiver autorizado para uma conexão [UAT (User Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) ou não estiver instalado para uma conexão [IAT (Installation Access Token)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), a conexão existente não poderá mais ser usada e você precisará criar uma nova conexão. Observe que a reinstalação do GitHub aplicativo não reativará a conexão anterior associada à instalação antiga.  
**Solução possível:** se a conexão for uma conexão UAT, certifique-se de que a conexão não esteja sendo usada simultaneamente, como sendo usada em várias execuções CodeBuild simultâneas de compilação. Isso ocorre porque invalida GitHub imediatamente um UAT emitido anteriormente se um token expirado for atualizado pela conexão. Se você precisar usar a conexão UAT para várias CodeBuild compilações simultâneas, poderá criar várias conexões e usar cada conexão de forma independente.  
**Solução possível:** se a conexão UAT não tiver sido usada nos últimos 6 meses, a conexão será invalidada pelo. GitHub Para corrigir isso, crie uma conexão.

***Possível causa:** você pode estar usando uma conexão UAT sem instalar a aplicação.*  
**Solução recomendada:** embora a criação de uma conexão UAT não exija a associação da conexão a uma instalação do GitHub aplicativo, é necessária uma instalação para que o repositório esteja acessível. Siga as instruções para [revisar as instalações](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) e garantir que o GitHub aplicativo esteja instalado. Se não estiver instalado, navegue até a [página do GitHub aplicativo](https://github.com/marketplace/aws-connector-for-github) para instalar o aplicativo. Para obter mais informações sobre o acesso do UAT, consulte [Sobre os tokens de acesso do usuário](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app#about-user-access-tokens).

### A função do IAM do AWS serviço não tem as permissões necessárias do IAM.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Problema:** você vê uma das seguintes mensagens de erro:
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Solução recomendada:** Normalmente, você usa uma conexão com um AWS serviço, como CodePipeline ou CodeBuild. Quando você atribui ao AWS serviço uma função do IAM, o AWS serviço pode usar a permissão da função para agir em seu nome. Verifique se o perfil do IAM tem as permissões necessárias. Para obter mais informações sobre a permissão necessária do IAM, consulte [Conceder acesso ao papel IAM do CodeBuild projeto para usar a conexão](#connections-github-role-access) e o [gerenciamento de identidade e acesso para AWS CodeStar notificações e CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) no *Guia do usuário do console Developer Tools*.

# GitHub e token de acesso do GitHub Enterprise Server
<a name="access-tokens-github"></a>

## Pré-requisitos do token de acesso
<a name="access-tokens-github-prereqs"></a>

Antes de começar, você deve adicionar os escopos de permissão adequados ao seu token de GitHub acesso. 

Pois GitHub, seu token de acesso pessoal deve ter os seguintes escopos. 
+ **repo**: concede controle total de repositórios privados. 
+ **repo:status:** concede read/write acesso aos status de confirmação do repositório público e privado.
+ **admin:repo\$1hook**: concede controle total de ganchos do repositório. Esse escopo não será obrigatório se o token tiver o escopo `repo`. 
+ **admin:org\$1hook**: concede controle total dos hooks da organização. Esse escopo só é necessário se você estiver usando o recurso de webhook da organização.

Para obter mais informações, consulte [Entendendo os escopos dos OAuth aplicativos](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) no GitHub site.

Se você estiver usando tokens de acesso pessoal refinados, dependendo do caso de uso, o token de acesso pessoal pode precisar das seguintes permissões:
+ **Conteúdo: somente leitura**: concede acesso a repositórios privados. Essa permissão é necessária se você estiver usando repositórios privados como fonte.
+ **Status de confirmação: leitura e gravação**: concede permissão para criar status de confirmação. Essa permissão é necessária se o projeto tiver um webhook configurado ou se você tiver o recurso de status de criação de relatório habilitado.
+ **Webhooks: leitura e gravação**: concede permissão para gerenciar webhooks. Essa permissão é necessária se o seu projeto tiver um webhook configurado.
+ **Solicitações pull: somente leitura**: concede permissão para acessar solicitações pull. Essa permissão é necessária se o webhook tiver um filtro `FILE_PATH` em eventos de solicitação pull.
+ **Administração: leitura e gravação**: essa permissão é necessária se você estiver usando o recurso de execução de GitHub ações auto-hospedado com. CodeBuild Para obter mais detalhes, consulte [Criar um token de registro para um repositório](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) e [Tutorial: Configurar um CodeBuild executor de GitHub ações hospedado](action-runner.md).

**nota**  
Se você quiser acessar os repositórios da organização, especifique a organização como proprietária do recurso do token de acesso.

Para obter mais informações, consulte [Permissões necessárias para tokens de acesso pessoal refinados no site](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28). GitHub 

## Conecte-se GitHub com um token de acesso (console)
<a name="access-tokens-github-console"></a>

Para usar o console para conectar seu projeto ao GitHub uso de um token de acesso, faça o seguinte ao criar um projeto. Para mais informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console). 

1. Em **Source provider**, escolha **GitHub**. 

1. Em **Credencial**, siga um destes procedimentos:
   + Escolha usar credenciais de conta para aplicar a credencial de origem padrão da conta a todos os projetos.

     1. Se você não estiver conectado GitHub, escolha **Gerenciar credencial da conta**.

     1. Em **Tipo de credencial**, escolha **Token de acesso pessoal**.
   + Se optar por usar credenciais no nível da conta em **Serviço**, escolha qual serviço você gostaria de usar para armazenar o token e faça o seguinte:

     1. Se optar por usar o **Secrets Manager**, você poderá escolher usar uma conexão secreta existente ou criar um segredo e selecionar **Salvar**. Para obter mais informações sobre como criar um segredo, consulte [Criar e armazenar um token em um segredo do Secrets Manager](asm-create-secret.md).

     1. Se você optar por usar **CodeBuild**, insira seu token de acesso GitHub pessoal e escolha **Salvar**.
   + Selecione **Usar credenciais substitutas apenas para este projeto** para usar uma credencial de origem personalizada a fim de substituir as configurações de credenciais da conta.

     1. Na lista de credenciais preenchida, escolha uma das opções em **Token de acesso pessoal**.

     1. Você também pode criar um token de acesso pessoal selecionando **criar uma conexão de token de acesso pessoal** na descrição.

## Conecte-se GitHub com um token de acesso (CLI)
<a name="access-tokens-github-cli"></a>

Siga estas etapas para usar o AWS CLI para conectar seu projeto ao GitHub uso de um token de acesso. Para obter informações sobre como usar o AWS CLI with AWS CodeBuild, consulte [Referência da linha de comando](cmd-ref.md) o. 

1. Execute o comando **import-source-credentials**: 

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   Os dados formatados JSON aparecem na saída. Copie os dados para um arquivo (por exemplo,`import-source-credentials.json`) em um local no computador local ou na instância em que o AWS CLI está instalado. Modifique os dados copiados da maneira a seguir e salve os resultados. 

   ```
   {
       "serverType": "server-type",
       "authType": "auth-type",
       "shouldOverwrite": "should-overwrite",
       "token": "token",
       "username": "username"
       }
   ```

   Substitua o seguinte: 
   + *server-type*: Valor obrigatório. O provedor de origem usado para essa credencial. Os valores válidos são GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB e GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valor obrigatório. O tipo de autenticação usado para se conectar a um repositório. Os valores válidos são OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS e SECRETS\$1MANAGER. Pois GitHub, somente PERSONAL\$1ACCESS\$1TOKEN é permitido. BASIC\$1AUTH só é permitido com a senha da aplicação do Bitbucket.
   + *should-overwrite*: Valor opcional. Defina como `false` para impedir a substituição das credenciais de origem do repositório. Defina como `true` para substituir as credenciais de origem do repositório. O valor padrão é `true`.
   + *token*: Valor obrigatório. Para GitHub nosso GitHub Enterprise Server, esse é o token de acesso pessoal. Para o Bitbucket, esse é o token de acesso pessoal ou senha da aplicação. Para o tipo de autenticação CODECONNECTIONS, esse é o ARN da conexão. Para o tipo de autenticação SECRETS\$1MANAGER, esse é o ARN secreto.
   + *username*: Valor opcional. Esse parâmetro é ignorado para provedores GitHub de origem do GitHub Enterprise Server. 

1. Para conectar sua conta com um token de acesso, alterne para o diretório que contém o arquivo `import-source-credentials.json` que você salvou na etapa 1 e execute o comando **import-source-credentials** novamente. 

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   Dados no formato JSON são exibidos na saída com um Nome de recurso da Amazon (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**nota**  
Se você executar o comando **import-source-credentials** com o mesmo tipo de servidor e tipo de autenticação uma segunda vez, o token de acesso armazenado será atualizado. 

   Depois que sua conta estiver conectada a um token de acesso, você poderá usá-lo `create-project` para criar seu CodeBuild projeto. Para obter mais informações, consulte [Crie um projeto de compilação (AWS CLI)](create-project.md#create-project-cli). 

1. Para visualizar os tokens de acesso conectados, execute o comando **list-source-credentials**. 

   ```
   aws codebuild list-source-credentials
   ```

   O objeto no formato JSON `sourceCredentialsInfos` é exibido na saída: 

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "auth-type",
                   "serverType": "server-type", 
                   "arn": "arn"
               }
           ]
       }
   ```

   `sourceCredentialsObject` contém uma lista de informações de credenciais de origem conectadas: 
   + `authType` é o tipo de autenticação usada pelas credenciais, Pode ser `OAUTH`, `BASIC_AUTH`, `PERSONAL_ACCESS_TOKEN`, `CODECONNECTIONS` ou `SECRETS_MANAGER`. 
   + `serverType` é o tipo de provedor de origem. Pode ser `GITHUB`, `GITHUB_ENTERPRISE`, `BITBUCKET`, `GITLAB` ou `GITLAB_SELF_MANAGED`. 
   + `arn` é o ARN do token. 

1. Para se desconectar de um provedor de origem e remover seus tokens de acesso, execute o comando **delete-source-credentials** com seu ARN. 

   ```
   aws codebuild delete-source-credentials --arn arn-of-your-credentials
   ```

   Dados no formato JSON são retornados com um ARN das credenciais excluídas. 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```

# GitHub OAuth Aplicativo
<a name="oauth-app-github"></a>

## Conecte-se GitHub usando OAuth (console)
<a name="oauth-app-github-console"></a>

Para usar o console para conectar seu projeto ao GitHub uso de um OAuth aplicativo, faça o seguinte ao criar um projeto. Para mais informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console). 

1. Em **Source provider**, escolha **GitHub**. 

1. Em **Credencial**, siga um destes procedimentos:
   + Escolha usar credenciais de conta para aplicar a credencial de origem padrão da conta a todos os projetos.

     1. Se você não estiver conectado GitHub, escolha **Gerenciar credencial da conta**.

     1. Para **Tipo de credencial**, escolha **OAuth aplicativo**.
   + Se optar por usar credenciais no nível da conta em **Serviço**, escolha qual serviço você gostaria de usar para armazenar o token e faça o seguinte:

     1. Se optar por usar o **Secrets Manager**, você poderá escolher usar uma conexão secreta existente ou criar um segredo e selecionar **Salvar**. Para obter mais informações sobre como criar um segredo, consulte [Criar e armazenar um token em um segredo do Secrets Manager](asm-create-secret.md).

     1. Se você optar por usar **CodeBuild**e, em seguida, escolher **Salvar**.
   + Selecione **Usar credenciais substitutas apenas para este projeto** para usar uma credencial de origem personalizada a fim de substituir as configurações de credenciais da conta.

     1. **Na lista de credenciais preenchida, escolha uma das opções em OAuth app.**

     1. Você também pode criar um novo token de OAuth aplicativo selecionando **criar uma nova conexão de token de aplicativo Oauth** na descrição.

Para revisar seus OAuth aplicativos autorizados, navegue até [Aplicativos ativados](https://github.com/settings/applications) GitHub e verifique se um aplicativo chamado de `AWS CodeBuild (region)` propriedade da [aws-codesuite](https://github.com/aws-codesuite) está listado.