

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# GitHub y acceso a GitHub Enterprise Server en CodeBuild
<a name="access-tokens-github-overview"></a>

Para GitHub ello, puedes usar un token de acceso personal, una OAuth aplicación, un secreto de Secrets Manager o una conexión de GitHub aplicación para acceder al proveedor de origen. Para GitHub Enterprise Server, puedes usar un token de acceso personal, un secreto de Secrets Manager o una conexión de GitHub aplicación para acceder al proveedor de origen.

**Topics**
+ [GitHub Conexiones de aplicaciones para GitHub un servidor GitHub empresarial](connections-github-app.md)
+ [GitHub y un token de acceso a GitHub Enterprise Server](access-tokens-github.md)
+ [Aplicación GitHub OAuth](oauth-app-github.md)

# GitHub Conexiones de aplicaciones para GitHub un servidor GitHub empresarial
<a name="connections-github-app"></a>

Puede usar GitHub la aplicación para conectarse con CodeBuild. GitHub Las conexiones de aplicaciones son compatibles a través de [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html).

El acceso del proveedor de origen te permite activar una compilación suscribiéndote al [GitHub eventos de webhook](github-webhook.md) uso [ CreateWebhook](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateWebhook.html)o al uso [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md) en CodeBuild.

**nota**  
CodeConnections está disponible en menos regiones que. CodeBuild Puede utilizar conexiones entre regiones en CodeBuild. Las conexiones creadas en regiones de suscripción no se pueden usar en otras regiones. Para obtener más información, consulte [Puntos de conexión y cuotas de AWS CodeConnections](https://docs.aws.amazon.com/general/latest/gr/codestar_connections.html).

**Topics**
+ [Paso 1: Crear una conexión a la GitHub aplicación (consola)](#connections-github-console)
+ [Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión](#connections-github-role-access)
+ [Paso 3: CodeBuild Configúralo para usar la nueva conexión](#connections-github-account-credential)
+ [Solución de problemas de la GitHub aplicación](#connections-github-troubleshooting)

## Paso 1: Crear una conexión a la GitHub aplicación (consola)
<a name="connections-github-console"></a>

Sigue estos pasos para usar la CodeBuild consola y añadir una conexión a tu proyecto GitHub.

**Para crear una conexión a GitHub**
+ Siga las instrucciones de la *Guía del usuario de las herramientas para desarrolladores* para [crear una conexión a GitHub](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html).

**nota**  
En lugar de crear o usar una conexión existente en tu cuenta, puedes usar una conexión compartida desde otra AWS cuenta. Para obtener más información, consulta [Compartir conexiones con AWS cuentas](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html).

## Paso 2: Otorgue acceso al rol de IAM del CodeBuild proyecto para usar la conexión
<a name="connections-github-role-access"></a>

Puedes conceder acceso a la función de IAM del CodeBuild proyecto para usar los GitHub tokens que vende tu conexión.

**Para conceder acceso a la función de CodeBuild IAM del proyecto**

1. Cree un rol de IAM para su CodeBuild proyecto siguiendo las instrucciones [CodeBuild Permiten interactuar con otros servicios AWS](setting-up-service-role.md) para su CodeBuild proyecto.

1. Siguiendo las instrucciones, añade la siguiente política de IAM a tu rol en el CodeBuild proyecto para conceder el acceso a la conexión.

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

****  

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

------

## Paso 3: CodeBuild Configúralo para usar la nueva conexión
<a name="connections-github-account-credential"></a>

Puede configurar una conexión como credencial de cuenta y usarla en un proyecto.

------
#### [ Consola de administración de AWS ]

**Para configurar una conexión como una credencial a nivel de cuenta en el Consola de administración de AWS**

1. En **Proveedor de origen**, elija **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija **Credencial de origen predeterminada** para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no está conectado a GitHub, elija **Administrar la credencial de origen predeterminada**.

     1. **En **Tipo de credencial**, selecciona GitHub Aplicación.**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.
   + Elija **Credencial de origen personalizada** a fin de usar una credencial de este tipo para anular la configuración predeterminada de su cuenta.

     1. **En **Tipo de credencial**, elija GitHub Aplicación.**

     1. En **Conexión**, elija usar una conexión existente o cree una nueva.

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

**Para configurar una conexión como una credencial a nivel de cuenta en el AWS CLI**
+ Abra un terminal (Linux, macOS o Unix) o un símbolo del sistema (Windows). Utilice el AWS CLI para ejecutar el **import-source-credentials** comando, especificando el `--auth-type``--server-type`, y `--token` para la conexión.

  Utilice el siguiente comando :

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

------

También puedes configurar varios tokens para tus CodeBuild proyectos. Para obtener más información, consulte [Configuración de varios tokens como credenciales de origen](multiple-access-tokens.md#asm-source-credential).

## Solución de problemas con la GitHub aplicación
<a name="connections-github-troubleshooting"></a>

La siguiente información puede ayudarle a solucionar problemas comunes con la GitHub aplicación.

**Topics**
+ [Instale el AWS conector para la GitHub aplicación en una región no deseada](#connections-github-troubleshooting.undesired-region)
+ [La conexión de la GitHub aplicación no tiene acceso a los repositorios](#connections-github-troubleshooting.repo-access)
+ [A la función de IAM del AWS servicio le faltan los permisos de IAM necesarios.](#connections-github-troubleshooting.iam-permissions)

### Instale el AWS conector para la GitHub aplicación en una región no deseada
<a name="connections-github-troubleshooting.undesired-region"></a>

**Problema:** instalaste el AWS conector GitHub desde GitHub Marketplace, pero la conexión se creó en una región no deseada. Si intentas volver a configurar la aplicación en el GitHub sitio web, no funcionará porque la aplicación ya está instalada en tu GitHub cuenta.

**Causa posible:** la aplicación ya está instalada en tu GitHub cuenta, por lo que solo puedes volver a configurar los permisos de la aplicación.

**Solución recomendada:** Puede crear una conexión con el ID de instalación en la región deseada.

1. Abre la CodeConnections consola en los [https://console.aws.amazon.com/codesuite/ajustes o conexiones](https://console.aws.amazon.com/codesuite/settings/connections) y navega hasta la región deseada con el selector de regiones de la barra de navegación de la AWS consola.

1. Siga las instrucciones de la *Guía del usuario de las herramientas para desarrolladores* para [crear una conexión a](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html). GitHub
**nota**  
Como ya ha instalado el AWS conector para la GitHub aplicación, puede elegirlo en lugar de instalar una aplicación nueva.

### La conexión de la GitHub aplicación no tiene acceso a los repositorios
<a name="connections-github-troubleshooting.repo-access"></a>

**Problema:** un AWS servicio que utiliza la conexión, como CodeBuild o CodePipeline, informa que no tiene acceso al repositorio o que el repositorio no existe. Estos son algunos de los posibles mensajes de error:
+ `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.`

***Causa posible:** es posible que hayas estado usando la GitHub aplicación y no hayas concedido el alcance de los permisos del webhook.*  
**Solución recomendada:** para conceder el alcance del permiso requerido, sigue las instrucciones de [Cómo ir a la GitHub aplicación que quieras revisar o 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 la aplicación instalada. En la sección de permisos, verá que la aplicación no tiene permisos de webhook y que hay una opción para revisar los permisos recién solicitados. Revise y acepte los nuevos permisos. Para obtener más información, consulte [Aprobar los permisos actualizados para](https://docs.github.com/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app) una aplicación. GitHub 

***Causa posible:** La conexión funcionaba según lo esperado, pero de repente no tiene acceso a los repositorios.*  
**Posible solución:** comience por revisar sus [autorizaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) y sus [instalaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) y, a continuación, compruebe que la GitHub aplicación esté autorizada e instalada. Si la instalación de la GitHub aplicación está suspendida, debe anular la suspensión. Si la GitHub aplicación no está autorizada para una conexión [UAT (token de acceso de usuario)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) o no está instalada para una conexión [IAT (token de acceso a la instalación)](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation), la conexión existente ya no se podrá utilizar y tendrá que crear una nueva conexión. Tenga en cuenta que volver a instalar la GitHub aplicación no restablecerá la conexión anterior que estaba asociada a la instalación anterior.  
**Solución posible:** si la conexión es una conexión UAT, asegúrese de que la conexión no se utilice simultáneamente, por ejemplo, si se utiliza en varias ejecuciones CodeBuild simultáneas de compilación. Esto se debe a que invalida GitHub inmediatamente un UAT emitido anteriormente si la conexión actualiza un token que está caducando. Si necesitas usar una conexión UAT para varias CodeBuild compilaciones simultáneas, puedes crear varias conexiones y usar cada conexión de forma independiente.  
**Posible solución:** si la conexión UAT no se ha utilizado en los últimos 6 meses, la conexión quedará invalidada por. GitHub Para solucionarlo, cree una conexión nueva.

***Causa posible:** Puede que haya estado usando una conexión de token de acceso de usuario sin instalar la aplicación.*  
**Solución recomendada:** aunque la creación de una conexión UAT no requiere asociar la conexión a una instalación de la GitHub aplicación, es necesaria una instalación para poder acceder al repositorio. Sigue las instrucciones para [revisar las instalaciones](https://docs.github.com/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps) y asegurarte de que la GitHub aplicación esté instalada. Si no está instalada, vaya a la [página de la GitHub aplicación](https://github.com/marketplace/aws-connector-for-github) para instalarla. Para obtener más información sobre el acceso de los tokens del tipo mencionado, consulte [Acerca de los tokens de acceso de usuario](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 la función de IAM del AWS servicio le faltan los permisos de IAM necesarios.
<a name="connections-github-troubleshooting.iam-permissions"></a>

**Problema:** Aparece alguno de los siguientes mensajes de error:
+ `Access denied to connection <connection-arn>`
+ `Failed to get access token from <connection-arn>`

**Solución recomendada:** normalmente se utiliza una conexión con un AWS servicio, como CodePipeline o. CodeBuild Cuando asignas al AWS servicio una función de IAM, el AWS servicio puede usar el permiso de la función para actuar en tu nombre. Asegúrese de que el rol de IAM tiene los permisos necesarios. Para obtener más información sobre el permiso de IAM necesario, consulte [Otorgar acceso al rol de IAM CodeBuild del proyecto para usar la conexión y la](#connections-github-role-access) [administración de identidad y acceso para AWS CodeStar las notificaciones y CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html) en la Guía del usuario de la *consola Developer Tools*.

# GitHub y un token de acceso a GitHub Enterprise Server
<a name="access-tokens-github"></a>

## Requisitos previos de los tokens de acceso
<a name="access-tokens-github-prereqs"></a>

Antes de empezar, debe añadir los ámbitos de permiso adecuados a su token de GitHub acceso. 

Pues GitHub, su token de acceso personal debe tener los siguientes ámbitos. 
+ **repo**: Concede a control total de repositorios privados. 
+ **repo:status:** otorga read/write acceso a los estados de confirmación de los repositorios públicos y privados.
+ **admin:repo\$1hook**: Concede control total de enlaces de repositorio. Este ámbito no es necesario si su token tiene el ámbito `repo`. 
+ **admin:org\$1hook**: Concede control total de los enlaces de la organización. Este ámbito solo es obligatorio si usa la característica de webhook de la organización.

Para obtener más información, consulta el artículo Cómo [entender los ámbitos de las aplicaciones en el sitio web OAuth ](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). GitHub 

Si usa tokens de acceso personal detallado puede que su token correspondiente necesite los siguientes permisos, en función de su caso de uso:
+ **Contenido: solo lectura:** concede acceso a los repositorios privados. Este permiso es obligatorio si usa repositorios privados como origen.
+ **Estados de confirmación: lectura y escritura:** concede permiso para crear estados de confirmación. Este permiso es obligatorio si su proyecto tiene webhook configurado o si tiene habilitada la característica para notificar el estado de compilación.
+ **Webhooks: lectura y escritura**: concede permiso para administrar los webhooks. Este permiso es obligatorio si su proyecto tiene webhook configurado.
+ **Solicitudes de extracción: solo lectura**: concede permiso para acceder a las solicitudes de extracción. Este permiso es obligatorio si su webhook tiene un filtro `FILE_PATH` para los eventos de solicitudes de extracción.
+ **Administración: lectura y escritura**: este permiso es necesario si utilizas la función GitHub Actions Runner autohospedada con. CodeBuild Para obtener más información, consulte [Create a registration token for a repository](https://docs.github.com/en/rest/actions/self-hosted-runners?apiVersion=2022-11-28#create-a-registration-token-for-a-repository) y [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md).

**nota**  
Si quiere acceder a los repositorios de la organización, asegúrese de especificar la organización como propietario del recurso del token de acceso.

Para obtener más información, consulta el artículo sobre [los permisos necesarios para los tokens de acceso personal detallados](https://docs.github.com/en/rest/authentication/permissions-required-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) en el sitio web. GitHub 

## Conéctese GitHub con un token de acceso (consola)
<a name="access-tokens-github-console"></a>

Para usar la consola para conectar tu proyecto GitHub mediante un token de acceso, haz lo siguiente al crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Proveedor de fuentes**, selecciona **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no estás conectado a GitHub, selecciona **Administrar credenciales de cuenta**.

     1. En **Tipo de credencial**, elija **Token de acceso personal**.
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. Si decides utilizarla **CodeBuild**, introduce tu token de acceso GitHub personal y, a continuación, selecciona **Guardar**.
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elija una de las opciones de **Token de acceso personal**.

     1. También puede crear un nuevo token de acceso personal seleccionando **crear una nueva conexión de token de acceso personal** en la descripción.

## Conéctese GitHub con un token de acceso (CLI)
<a name="access-tokens-github-cli"></a>

Siga estos pasos para usar el y AWS CLI conectar su proyecto GitHub mediante un token de acceso. Para obtener información sobre el uso del AWS CLI with AWS CodeBuild, consulta la[Referencia de la línea de comandos](cmd-ref.md). 

1. Ejecute el comando **import-source-credentials**: 

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

   En el resultado se muestran datos con formato JSON. Copie los datos en un archivo (por ejemplo,`import-source-credentials.json`) en una ubicación del equipo o instancia local en la que AWS CLI esté instalado. Modifique los datos copiados como se indica a continuación y guarde los resultados. 

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

   Sustituya lo siguiente: 
   + *server-type*: valor obligatorio. El proveedor de código fuente utilizado para esta credencial. Los valores válidos son GITHUB, BITBUCKET, GITHUB\$1ENTERPRISE, GITLAB y GITLAB\$1SELF\$1MANAGED.
   + *auth-type*: Valor obligatorio. El tipo de autenticación que se utiliza para conectarse a un repositorio. Los valores válidos son OAUTH, BASIC\$1AUTH, PERSONAL\$1ACCESS\$1TOKEN, CODECONNECTIONS y SECRETS\$1MANAGER. Para GitHub, solo se permite PERSONAL\$1ACCESS\$1TOKEN. BASIC\$1AUTH solo está permitido con la contraseña de aplicación de Bitbucket.
   + *should-overwrite*: valor opcional. Establézcalo en `false` para impedir que se sobrescriban las credenciales de origen del repositorio. Establézcalo en `true` para sobrescribir las credenciales de origen del repositorio. El valor predeterminado es `true`.
   + *token*: Valor obligatorio. En el GitHub caso de GitHub Enterprise Server, este es el token de acceso personal. Para Bitbucket, este es el token de acceso personal o la contraseña de aplicación. Para el tipo de autenticación CODECONNECTIONS, es el ARN de la conexión. Para el tipo de autenticación SECRETS\$1MANAGER, es el ARN del secreto.
   + *username*: valor opcional. Este parámetro se omite para GitHub los proveedores de origen de GitHub Enterprise Server. 

1. Para conectar su cuenta con un token de acceso, cambie al directorio que contiene el archivo `import-source-credentials.json` que guardó en el paso 1 y vuelva a ejecutar el comando **import-source-credentials**. 

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

   Los datos con formato JSON aparecen en el resultado con un nombre de recurso de Amazon (ARN). 

   ```
   {
       "arn": "arn:aws:codebuild:region:account-id:token/server-type"
       }
   ```
**nota**  
Si ejecuta el comando **import-source-credentials** con el mismo tipo de servidor y tipo de autorización una segunda vez, se actualiza el token de acceso almacenado. 

   Una vez que tu cuenta esté conectada con un token de acceso, podrás usarlo `create-project` para crear tu CodeBuild proyecto. Para obtener más información, consulte [Crear un proyecto de compilación (AWS CLI)](create-project.md#create-project-cli). 

1. Para ver los tokens de acceso conectados, ejecute el comando **list-source-credentials**. 

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

   Un objeto `sourceCredentialsInfos` con formato JSON aparece en el resultado: 

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

   El `sourceCredentialsObject` contiene una lista de información de credenciales de código fuente conectado: 
   + El `authType` es el tipo de autenticación que utilizan las credenciales. Este valor puede ser `OAUTH`, `BASIC_AUTH`, `PERSONAL_ACCESS_TOKEN`, `CODECONNECTIONS` o `SECRETS_MANAGER`. 
   + El `serverType` es el tipo de proveedor de código fuente. Este valor puede ser `GITHUB`, `GITHUB_ENTERPRISE`, `BITBUCKET`, `GITLAB` o `GITLAB_SELF_MANAGED`. 
   + El `arn` es el ARN del token. 

1. Para desconectarse de un proveedor de código fuente y eliminar sus tokens de acceso, ejecute el comando **delete-source-credentials** con su ARN. 

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

   Los datos con formato JSON se devuelven con un ARN de las credenciales eliminadas. 

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

# Aplicación GitHub OAuth
<a name="oauth-app-github"></a>

## Conectarse GitHub mediante OAuth (consola)
<a name="oauth-app-github-console"></a>

Para usar la consola para conectar el proyecto a GitHub una OAuth aplicación, haga lo siguiente al crear un proyecto. Para obtener información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console). 

1. En **Proveedor de fuentes**, selecciona **GitHub**. 

1. En **Credencial**, realice una de las siguientes acciones:
   + Elija utilizar credenciales de cuenta para aplicar la credencial de origen predeterminada de su cuenta a todos los proyectos.

     1. Si no estás conectado a GitHub, selecciona **Administrar credenciales de cuenta**.

     1. **En **Tipo de credencial**, selecciona OAuth aplicación.**
   + Si ha elegido utilizar credenciales de nivel de cuenta para **Servicio**, elija qué servicio desea usar para almacenar el token y haga lo siguiente:

     1. Si decide usar **Secrets Manager**, puede elegir entre usar una conexión de secreto existente o crear un secreto nuevo y elegir **Guardar**. Para obtener más información sobre cómo crear un secreto nuevo, consulte [Creación y almacenamiento de un token en un secreto de Secrets Manager](asm-create-secret.md).

     1. Si eliges usar **CodeBuild**y, a continuación, selecciona **Guardar**.
   + Seleccione **Usar credenciales de anulación solo para este proyecto** para utilizar una credencial de origen personalizada para anular la configuración de credencial de la cuenta.

     1. En la lista de credenciales rellenada, elige una de las opciones de la **OAuth aplicación**.

     1. También puedes crear un nuevo token de OAuth aplicación seleccionando **crear una nueva conexión de token de aplicación de Oauth** en la descripción.

Para revisar sus OAuth aplicaciones autorizadas, vaya a [Aplicaciones](https://github.com/settings/applications) en y compruebe que GitHub aparezca una aplicación cuyo nombre sea `AWS CodeBuild (region)` propiedad de [aws-codesuite](https://github.com/aws-codesuite).