Apéndice A: acciones de origen de la GitHub versión 1 - 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 origen de la GitHub versión 1

En este apéndice se proporciona información sobre la versión 1 de la GitHub acción de CodePipeline.

nota

Si bien no recomendamos usar la acción de la GitHub versión 1, las canalizaciones existentes con la acción de la GitHub versión 1 seguirán funcionando sin ningún impacto. En el caso de una canalización con una acción de la GitHub versión 1, CodePipeline usa tokens OAuth basados para conectarse a tu GitHub repositorio. Por el contrario, la GitHub acción (versión 2) usa un recurso de conexión para asociar AWS los 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 de origen de la GitHub versión 1 a una acción de origen de la GitHub versión 2. Para obtener más información sobre el GitHub acceso OAuth basado en comparación con el 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 GitHub OAuth aplicación para tu canalización. CodePipelineusa webhooks para gestionar la detección de cambios en tu canalización con la acción fuente de la GitHub versión 1.

nota

Cuando configuras una acción fuente en la GitHub versión 2 AWS CloudFormation, no incluyes ninguna información sobre el GitHub token ni agregas un recurso de webhook. Puede configurar un recurso de conexiones como se muestra en AWS:CodeStarConnections: :Connection de la Guía del AWS CloudFormation usuario.

Esta referencia contiene las siguientes secciones para la acción de la GitHub versión 1:

importante

Al crear CodePipeline webhooks, no utilices tus propias credenciales ni reutilices el mismo token secreto en varios webhooks. Para una seguridad óptima, genera un token secreto único para cada webhook que crees. El token secreto es una cadena arbitraria que tú proporcionas y que se GitHub utiliza para calcular y firmar las cargas útiles del webhook a las que se envían CodePipeline, a fin de proteger la integridad y la autenticidad de las cargas útiles del webhook. Utilizar tus 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 de GitHub la versión 1

Las acciones de origen de GitHub la versión 1 se añaden de la siguiente CodePipeline manera:

  • Utilice el asistente de creación de canalizaciones de la CodePipeline consola (Crear una canalización (consola)) o la página de edición de acciones para elegir la opción GitHubde proveedor. La consola crea un webhook que inicia su canalización cuando cambia la fuente.

  • Se utiliza CLI para añadir la configuración de la GitHub acción y se crean recursos adicionales de la siguiente manera:

    • Utilizar el ejemplo de configuración de acción GitHub en GitHub referencia de acción fuente de la versión 1 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. Para las acciones de la GitHub versión 1, debes migrar tu canal de votación a webhooks.

GitHub referencia de acción fuente de la versión 1

nota

Si bien no recomendamos usar la acción de la GitHub versión 1, las canalizaciones existentes con la acción de la GitHub versión 1 seguirán funcionando sin ningún impacto. En el caso de una canalización con una acción de origen de la GitHub GitHub versión 1, CodePipeline utiliza tokens OAuth basados para conectarse a tu GitHub repositorio. Por el contrario, la nueva GitHub acción (versión 2) usa un recurso de conexión para asociar AWS los 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 de origen de la GitHub versión 1 a una acción de origen de la GitHub versión 2.

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

Para integrarlo GitHub, CodePipeline utiliza una OAuth aplicación 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 la inicia cuando se produce un cambio en el repositorio.

Debes haber creado ya 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 concédele acceso únicamente a los repositorios con los que desees integrarte. CodePipeline Usa esa cuenta cuando CodePipeline configures el uso de GitHub repositorios como etapas de origen en 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 o la 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 el GitHub repositorio. La entrada siempre se muestra como una máscara de cuatro asteriscos. Representa uno de los siguientes valores:

  • Cuando utilizas la consola para crear la canalización, CodePipeline utiliza un OAuth token para registrar la GitHub conexión.

  • Cuando utilices el AWS CLI para crear la canalización, puedes pasar tu token de acceso GitHub personal a este campo. Sustituya los asteriscos (****) por su token de acceso personal copiado de. 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 AWS CloudFormation plantilla para crear la canalización, primero debes almacenar el token de forma secreta. 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 ámbitos, consulta la APIReferencia para GitHub desarrolladores en el sitio GitHub web.

PollForSourceChanges

Obligatorio: no

PollForSourceChangescontrola si CodePipeline sondea el GitHub repositorio en busca de cambios en la 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 Migra los canales de sondeo a webhooks (acciones fuente de la GitHub versión 1) () CLI o Actualice las canalizaciones para los eventos push (acciones fuente de la GitHub versión 1) (AWS 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 está configurado, CodePipeline sondea el repositorio para ver si hay cambios en la fuente.

    nota

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

  • False: Si está configurado, CodePipeline no sondea tu repositorio para ver si hay cambios en la 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 ZIP archivo que contiene el contenido del repositorio y la rama configurados en la confirmación especificada como 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 ID de confirmación del código fuente se muestra CodePipeline como la revisión fuente de 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 de CodePipeline, consulteReferencia de variables.

CommitId

El ID de GitHub confirmación que activó la ejecución de la canalización. IDsLas confirmaciones son la totalidad SHA 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 URL dirección 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.

Para obtener más información sobre la diferencia entre un autor y un confirmador en Git, consulte Viewing the Commit History en Pro Git por Scott Chacon y Ben Straub.

CommitterDate

Fecha en la que se ha confirmado la confirmación, en formato de marca temporal.

Para obtener más información sobre la diferencia entre un autor y un confirmador en Git, consulte Viewing the Commit History en Pro Git por Scott Chacon y Ben Straub.

Declaración de acciones (ejemplo de GitHub)

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" } ] },

Conectándose 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 ámbitos:

  • 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.

Al utilizar la plantilla CLI o una AWS CloudFormation plantilla, debe proporcionar el valor de un token de acceso personal que ya haya creado. GitHub

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