View a markdown version of this page

Apéndice A: acciones de GitHub origen (a través de la aplicación OAuth) - AWS CodePipeline

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.

Apéndice A: acciones de GitHub origen (a través de la aplicación OAuth)

Este apéndice proporciona información sobre la acción GitHub (a través de la aplicación OAuth) en. CodePipeline

nota

Si bien no recomendamos usar la acción GitHub (a través de la aplicación OAuth), las canalizaciones existentes con la acción GitHub (a través de la aplicación OAuth) seguirán funcionando sin ningún impacto. En el caso de una canalización con una acción GitHub (a través de una aplicación OAuth), CodePipeline usa OAuth-based tokens para conectarse a tu repositorio. GitHub Por el contrario, la GitHub acción (a través de GitHub la aplicación) usa un recurso de conexión para asociar AWS recursos a tu GitHub repositorio. El recurso de conexión usa tokens basados en aplicaciones para conectarse. Para obtener más información sobre cómo actualizar tu canalización a la GitHub acción recomendada que usa una conexión, consultaActualizar una acción fuente GitHub (a través de la aplicación OAuth) a una acción fuente GitHub (a través de GitHub la aplicación). Para obtener más información sobre el OAuth-based GitHub acceso en contraposición al GitHub acceso basado en aplicaciones, consulte. https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps

Para integrarlo GitHub, CodePipeline usa una aplicación de GitHub OAuth para tu canalización. CodePipelineusa webhooks para gestionar la detección de cambios en tu canalización con la acción fuente GitHub (a través de la aplicación OAuth).

nota

Cuando configuras una acción de origen GitHub (mediante una GitHub aplicación) en CloudFormation, no incluyes ninguna información sobre el GitHub token ni añades ningún recurso de webhook. Los recursos de conexiones se configuran tal y como se muestra en AWS::CodeStarConnections: :Connection de la Guía del CloudFormation usuario.

Esta referencia contiene las siguientes secciones para la acción GitHub (mediante la aplicación OAuth):

importante

Al crear CodePipeline webhooks, no utilices tus propias credenciales ni reutilices 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 tú proporcionas y que se GitHub utiliza para calcular y firmar las cargas útiles de los webhooks a las que se envían CodePipeline, a fin de proteger la integridad y la autenticidad de las cargas útiles de los webhooks. 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.

Añadir una acción fuente GitHub (mediante la aplicación OAuth)

Añades acciones de origen GitHub (a través de la aplicación OAuth) de la siguiente manera: CodePipeline

  • Utiliza el asistente de creación de canalizaciones (Creación de una canalización personalizada (consola)) de la CodePipeline consola o la página de edición de acciones para elegir la opción de GitHub proveedor. 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 GitHub y crear recursos adicionales de la siguiente manera:

    • Utilizar el ejemplo de configuración de acción GitHub en GitHub (a través de la aplicación OAuth): referencia de la acción fuente 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. Migra su proceso de sondeo a webhooks para realizar acciones GitHub (a través de la aplicación OAuth).

GitHub (a través de la aplicación OAuth): referencia de la acción fuente

nota

Si bien no recomendamos usar la acción GitHub (a través de la aplicación OAuth), las canalizaciones existentes con la acción GitHub (a través de la aplicación OAuth) seguirán funcionando sin ningún impacto. En el caso de una canalización con una acción fuente GitHub (a través de una aplicación OAuth), CodePipeline usa OAuth-based tokens para conectarse a tu repositorio. GitHub Por el contrario, la nueva GitHub acción (a través de GitHub la aplicación) usa un recurso de conexión para asociar AWS recursos a tu GitHub repositorio. El recurso de conexión usa tokens basados en aplicaciones para conectarse. Para obtener más información sobre cómo actualizar tu canalización a la GitHub acción recomendada que usa una conexión, consultaActualizar una acción fuente GitHub (a través de la aplicación OAuth) a una acción fuente GitHub (a través de GitHub la aplicación).

Activa la canalización cuando se realiza una nueva confirmación en el GitHub repositorio y la rama configurados.

Para integrarlo GitHub, CodePipeline usa una aplicación de OAuth o un token de acceso personal para tu canalización. Si utilizas la consola para crear o editar tu canalización, CodePipeline crea un GitHub webhook que inicia tu canalización cuando se produce un cambio en el repositorio.

Debes haber creado una GitHub cuenta y un repositorio antes de conectar la canalización mediante una GitHub acción.

Si quieres limitar el acceso CodePipeline a los repositorios, crea una GitHub cuenta y concede a la cuenta acceso solo a aquellos repositorios con los que quieras integrarte. CodePipeline Usa esa cuenta cuando configures el uso de GitHub repositorios CodePipeline para las etapas de origen de las canalizaciones.

Para obtener más información, consulta la documentación para GitHub desarrolladores en el GitHub sitio web.

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 GitHub usuario u organización propietario del GitHub repositorio.

Repo

Obligatorio: sí

El nombre del repositorio en el que se van a detectar los cambios de origen.

Rama

Obligatorio: sí

El nombre de la ramificación donde se van a detectar los cambios de origen.

OAuthToken

Obligatorio: sí

Representa el token de GitHub autenticación que CodePipeline permite realizar operaciones en tu GitHub repositorio. La entrada siempre se muestra como una máscara de cuatro asteriscos. Representa uno de los siguientes valores:

  • Cuando usas la consola para crear la canalización, CodePipeline usa un token de OAuth para registrar la GitHub conexión.

  • Cuando lo usas AWS CLI para crear la canalización, puedes pasar tu token de acceso GitHub personal a este campo. Sustituye los asteriscos (****) por el token de acceso personal del que has copiado. GitHub Cuando ejecute get-pipeline para ver la configuración de la acción, aparecerá la máscara de cuatro asteriscos de este valor.

  • Cuando utilices una CloudFormation plantilla para crear la canalización, primero debes almacenar el token como 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 GitHub alcances, consulta la referencia de la API para GitHub desarrolladores en el GitHub sitio web.

PollForSourceChanges

Obligatorio: no

PollForSourceChangescontrola si CodePipeline sondea el GitHub repositorio en busca de cambios en el código fuente. 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 Migre las canalizaciones de sondeo a webhooks GitHub (a través de la aplicación OAuth) (acciones fuente) (CLI) o Actualiza las canalizaciones para las acciones fuente de los eventos push GitHub (a través de la aplicación OAuth) (CloudFormation plantilla).

importante

Si tiene la intención de configurar webhooks, debe establecer PollForSourceChanges en false evitar ejecuciones de canalizaciones duplicadas.

Los valores válidos para este parámetro son:

  • True: Si se establece, CodePipeline sondea tu repositorio para ver si hay cambios en el código fuente.

    nota

    Si lo omitesPollForSourceChanges, de CodePipeline forma predeterminada sondea tu repositorio para ver si hay cambios en el código fuente. Este comportamiento es el mismo que si PollForSourceChanges se establece en true.

  • False: Si se establece, CodePipeline no sondea tu repositorio para ver si hay cambios en el código fuente. 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 de la GitHub acción. El identificador de confirmación del código fuente se muestra CodePipeline como la revisión de origen para la ejecución de la canalización activada.

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 sobre las variables en CodePipeline, consulteReferencia de variables.

CommitId

El ID de GitHub confirmación que activó 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 GitHub repositorio en el que se realizó la confirmación que activó la canalización.

BranchName

El nombre de la rama del GitHub repositorio en el que se realizó el cambio de 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 acción (GitHub ejemplo)

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: ThirdParty Category: Source Provider: GitHub OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: Owner: MyGitHubAccountName Repo: MyGitHubRepositoryName PollForSourceChanges: 'false' Branch: main OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}' Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "ThirdParty", "Category": "Source", "Provider": "GitHub" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "main", "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}" }, "Name": "ApplicationSource" } ] },

Conectarse a GitHub (OAuth)

La primera vez que utilices la consola para añadir un GitHub repositorio a una canalización, se te pedirá que autorices el CodePipeline acceso a tus repositorios. El token requiere los siguientes GitHub alcances:

  • 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 utilices la CLI o una CloudFormation plantilla, debes proporcionar el valor de un token de acceso personal en GitHub el que ya hayas creado.

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.