Apéndice A: Acciones de origen de GitHub (mediante la aplicación OAuth)
En este apéndice, se proporciona información sobre la acción de GitHub (mediante la aplicación OAuth) en CodePipeline.
nota
Si bien no recomendamos usar la acción de GitHub (mediante la aplicación OAuth), las canalizaciones existentes con dicha acción seguirán funcionando sin ningún impacto. Para una canalización con una acción de GitHub (mediante la aplicación OAuth), CodePipeline usa tokens basados en OAuth para conectarse a su repositorio de GitHub. Por el contrario, la nueva acción de GitHub (mediante la aplicación de GitHub) usa un recurso de conexión para asociar los recursos de AWS a su repositorio de GitHub. El recurso de conexión usa tokens basados en aplicaciones para conectarse. Para obtener más información sobre cómo actualizar su canalización a la acción de GitHub recomendada que usa una conexión, consulte Actualización de una acción de origen de GitHub (mediante la aplicación OAuth) a una acción de origen de GitHub (mediante la aplicación de GitHub). Para obtener más información sobre el acceso a GitHub basado en OAuth en contraste con el acceso a GitHub basado en aplicaciones, consulte https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
Para integrarlo con GitHub, CodePipeline usa una aplicación OAuth de GitHub para su canalización. CodePipeline usa webhooks para administrar la detección de cambios en su canalización con la acción de origen de GitHub (mediante la aplicación OAuth).
nota
Cuando configura una acción de origen de GitHub (mediante la aplicación de GitHub) en CloudFormation, no incluye ninguna información de token de GitHub ni agrega ningún recurso de webhook. Puede configurar un recurso de conexiones como se muestra en AWS: :CodestarConnections: :Connection de la Guía del usuario de CloudFormation.
Esta referencia contiene las siguientes secciones para la acción de GitHub (mediante la aplicación OAuth):
-
Para obtener información sobre cómo agregar una acción de origen y un webhook de GitHub (mediante la aplicación OAuth) a una canalización, consulte Agregación de una acción de origen de GitHub (mediante la aplicación OAuth).
-
Para obtener información sobre los parámetros de configuración y ejemplos de fragmentos de YAML/JSON para una acción de origen de GitHub (mediante la aplicación OAuth), consulte Referencia de acciones de origen de GitHub (mediante la aplicación OAuth).
importante
Al crear webhooks de CodePipeline, no utilice sus propias credenciales ni reutilice el mismo token secreto en varios webhooks. Para garantizar una seguridad óptima, genere un token secreto único para cada webhook que vaya a crear. El token secreto es una cadena arbitraria que el propio usuario proporciona y que GitHub utiliza para calcular y firmar las cargas útiles de webhook enviadas a CodePipeline, con el fin de proteger la integridad y autenticidad de las cargas útiles de webhook. Usar sus propias credenciales o reutilizar el mismo token en varios webhooks puede provocar vulnerabilidades de seguridad.
nota
Si se ha proporcionado un token secreto, aparecerá redactado en la respuesta.
Temas
Agregación de una acción de origen de GitHub (mediante la aplicación OAuth)
Para agregar acciones de origen de GitHub (mediante la aplicación OAuth) a CodePipeline, haga lo siguiente:
-
Use el asistente de creación de canalización de la consola CodePipeline (Creación de una canalización personalizada (consola)) o la página Editar acción para elegir la opción de proveedor de GitHub. La consola crea un webhook que inicia su canalización cuando cambia la fuente.
-
Usar la CLI para agregar la configuración de la acción
GitHuby crear recursos adicionales de la siguiente manera:-
Utilizar el ejemplo de configuración de acción
GitHuben Referencia de acciones de origen de GitHub (mediante la aplicación OAuth) para crear la acción como se muestra en Crear una canalización (CLI). -
Se desactivan las comprobaciones periódicas y se crea la detección de cambios de forma manual, ya que el método de detección de cambios consiste de forma predeterminada en iniciar la canalización sondeando la fuente. Migre la canalización de sondeo a webhooks para las acciones de GitHub (mediante la aplicación OAuth).
-
Referencia de acciones de origen de GitHub (mediante la aplicación OAuth)
nota
Si bien no recomendamos usar la acción de GitHub (mediante la aplicación OAuth), las canalizaciones existentes con dicha acción seguirán funcionando sin ningún impacto. Para una canalización con una acción de origen de GitHub (mediante la aplicación OAuth), CodePipeline usa tokens basados en OAuth para conectarse a su repositorio de GitHub. Por el contrario, la nueva acción de GitHub (mediante la aplicación de GitHub) usa un recurso de conexión para asociar los recursos de AWS a su repositorio de GitHub. El recurso de conexión usa tokens basados en aplicaciones para conectarse. Para obtener más información sobre cómo actualizar su canalización a la acción de GitHub recomendada que usa una conexión, consulte Actualización de una acción de origen de GitHub (mediante la aplicación OAuth) a una acción de origen de GitHub (mediante la aplicación de GitHub).
Activa la canalización cuando se realiza una nueva confirmación en el repositorio y ramificación de GitHub configurados.
Para integrarse con GitHub, CodePipeline utiliza una aplicación OAuth o un token de acceso personal para su canalización. Si usa la consola para crear o editar su canalización, CodePipeline crea un webhook de GitHub que inicia su canalización cuando se produce un cambio en el repositorio.
Debe haber creado ya una cuenta y un repositorio de GitHub antes de conectar la canalización a través de una acción de GitHub.
Si desea limitar el acceso de CodePipeline a los repositorios, cree una cuenta de GitHub y otorgue a la cuenta acceso solo a los repositorios que desea integrar con CodePipeline. Use esa cuenta cuando configure CodePipeline para usar repositorios de GitHub para etapas de origen en canalizaciones.
Para obtener más información, consulte la documentación del desarrollador de GitHub
Temas
Tipo de acción
-
Categoría:
Source -
Propietario: :
ThirdParty -
Proveedor:
GitHub -
Versión:
1
Parámetros de configuración
- Propietario
-
Obligatorio: sí
El nombre del usuario u organización de GitHub que posee el repositorio de GitHub.
- Repo
-
Obligatorio: sí
El nombre del repositorio en el que se van a detectar los cambios de origen.
- Crear ramificaciones
-
Obligatorio: sí
El nombre de la ramificación donde se van a detectar los cambios de origen.
- OAuthToken
-
Obligatorio: sí
Representa el token de autenticación de GitHub que permite a CodePipeline realizar operaciones en su repositorio de GitHub. La entrada siempre se muestra como una máscara de cuatro asteriscos. Representa uno de los siguientes valores:
-
Cuando utiliza la consola para crear la canalización, CodePipeline utiliza un token OAuth para registrar la conexión a GitHub.
-
Cuando utiliza AWS CLI para crear la canalización, puede pasar un token de acceso personal de GitHub en este campo. Sustituya los asteriscos (****) por el token de acceso personal que copió de GitHub. Cuando ejecute
get-pipelinepara ver la configuración de la acción, aparecerá la máscara de cuatro asteriscos de este valor. -
Si utiliza una plantilla de CloudFormation para crear la canalización, primero deberá guardar el token como un secreto en AWS Secrets Manager. El valor de este campo debe incluirse como una referencia dinámica al secreto almacenado en Secrets Manager, como
{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}.
Para obtener más información sobre los ámbitos de GitHub, consulte la GitHub Developer API Reference
en el sitio web de GitHub. -
- PollForSourceChanges
-
Obligatorio: no
PollForSourceChangescontrola si CodePipeline sondea el repositorio de GitHub para los cambios de origen. Le recomendamos que utilice webhooks para detectar cambios de código fuente en su lugar. Para obtener más información acerca de la configuración de webhooks, consulte Migración de canalizaciones de sondeo a webhooks (acciones de origen de GitHub (mediante la aplicación OAuth)) (CLI) o Actualización de canalizaciones para eventos de inserción (acciones de origen de GitHub (mediante la aplicación OAuth)) (plantilla de CloudFormation).importante
Si tiene la intención de configurar webhooks, debe establecer
PollForSourceChangesenfalseevitar ejecuciones de canalizaciones duplicadas.Los valores válidos para este parámetro son:
-
True: si está configurado, CodePipeline sondea su repositorio para detectar cambios de origen.nota
Si se omite
PollForSourceChanges, CodePipeline sondea de forma predeterminada el repositorio para detectar cambios de origen. Este comportamiento es el mismo que siPollForSourceChangesse establece entrue. -
False: si se establece, CodePipeline no sondea su repositorio para detectar cambios de origen. Utilice esta opción si desea configurar un webhook para detectar cambios de código fuente.
-
Artefactos de entrada
-
Número de artefactos:
0 -
Descripción: los artefactos de entrada no se aplican a este tipo de acción.
Artefactos de salida
-
Número de artefactos:
1 -
Descripción: el artefacto de salida de esta acción es un archivo ZIP que contiene el contenido del repositorio configurado y la ramificación en la confirmación especificada como la revisión de origen para la ejecución de la canalización. Los artefactos generados desde el repositorio son los artefactos de salida para la acción de GitHub. El ID de confirmación de código fuente se muestra en CodePipeline como la revisión de origen para la ejecución de canalización desencadenada.
Variables de salida
Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.
Para obtener más información acerca de las variables en CodePipeline, consulte Referencia de variables.
- CommitId
-
El ID de confirmación de GitHub que desencadenó la ejecución de la canalización. Los ID de confirmación son el volumen de dispositivo raíz completo de la confirmación.
- CommitMessage
-
El mensaje de descripción, si lo hay, asociado a la confirmación que desencadenó la ejecución de la canalización.
- CommitUrl
-
La dirección URL de la confirmación que activó la canalización.
- RepositoryName
-
El nombre del repositorio de GitHub donde se realizó la confirmación que activó la canalización.
- BranchName
-
El nombre de la ramificación del repositorio de GitHub donde se realizó el cambio de código fuente.
- AuthorDate
-
Fecha en la que se creó la confirmación, en formato de marca temporal.
- CommitterDate
-
Fecha en la que se ha confirmado la confirmación, en formato de marca temporal.
Declaración de acciones (ejemplo de GitHub)
Conexión a GitHub (OAuth)
La primera vez que utilice la consola para añadir un repositorio de GitHub a una canalización, se le solicita que autorice a CodePipeline el acceso a los repositorios. El token requiere los siguientes ámbitos de GitHub:
-
El ámbito
repo, que se utiliza para controlar totalmente la lectura y la extracción artefactos de los repositorios públicos y privados en una canalización. -
El ámbito
admin:repo_hook, que se utiliza para el control total de enlaces de repositorio.
Cuando utiliza la CLI o una plantilla de CloudFormation, debe proporcionar el valor para un token de acceso personal que ya ha creado en GitHub.
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Referencia de recursos para la Guía del usuario de AWS CloudFormation AWS::CodePipeline::Webhook: incluye definiciones de campo, ejemplos y fragmentos del recurso en CloudFormation.
-
Referencia de recursos para la Guía del usuario de AWS CloudFormation AWS::CodeStar::GitHubRepository: incluye definiciones de campo, ejemplos y fragmentos del recurso en CloudFormation.
-
Tutorial: Crear una canalización que compile y pruebe la aplicación para Android con AWS Device Farm: en este tutorial se proporciona un ejemplo de archivo de especificaciones de compilación y una aplicación de ejemplo para crear una canalización con un origen de GitHub. Construye y prueba una aplicación de Android con CodeBuild y AWS Device Farm.