Como administrador o desarrollador de Code Stream, puede integrar Code Stream con el ciclo de vida de Git mediante el activador de Git. Cuando se realiza un cambio de código en GitHub, GitLab o Bitbucket Enterprise, el evento se comunica con Code Stream mediante un webhook y activa una canalización para que se ejecute. El webhook funciona con las versiones empresariales locales de GitLab, GitHub y BitBucket cuando se puede acceder tanto a Cloud Assembly como a la versión empresarial en la misma red.

Al agregar el webhook de Git en Code Stream, también se crea un webhook en el repositorio de GitHub, GitLab o Bitbucket. Si actualiza o elimina el webhook más adelante, esa acción también actualiza o elimina el webhook en GitHub, GitLab o Bitbucket.

La definición de webhook debe incluir un endpoint de Git en la rama del repositorio que desea supervisar. Para crear el webhook, Code Stream utiliza el endpoint de Git. Si el endpoint no existe, puede crearlo cuando agregue el webhook. En este ejemplo, se supone que tiene un endpoint de Git predefinido en GitHub.

Nota: Para crear un webhook, el endpoint de Git debe usar un token privado para la autenticación, no puede usar una contraseña.

Es posible crear varios webhooks para diferentes ramas; para hacerlo, utilice el mismo endpoint de Git y proporcione valores diferentes para el nombre de la rama en la página de configuración del webhook. Si desea crear otro webhook para otra rama en el mismo repositorio de Git, no es necesario clonar el endpoint de Git varias veces para varias ramas. Lo que debe hacer es proporcionar el nombre de la rama en el webhook, lo que permite volver a utilizar el endpoint de Git. Si la rama del webhook de Git es igual que la rama del endpoint, no es necesario que proporcione el nombre de la rama en la página de webhook de Git.

En este ejemplo, se muestra cómo usar el activador de Git con un repositorio de GitHub, pero los requisitos previos incluyen preparaciones necesarias si se utiliza otro tipo de servidor de Git.

Requisitos previos

  • Compruebe si es un miembro de un proyecto en Code Stream. Si no lo es, solicite al administrador de Code Stream que lo agregue como miembro de un proyecto. Consulte Cómo agregar un proyecto en Code Stream.
  • Asegúrese de que dispone de un endpoint de Git en la rama de GitHub que desea supervisar. Consulte Cómo se puede integrar Code Stream con Git.
  • Compruebe que tenga derechos para crear un webhook en el repositorio de Git.
  • Si va a configurar un webhook en GitLab, cambie la configuración de red predeterminada en GitLab Enterprise para habilitar las solicitudes salientes y permitir la creación de webhooks locales.
    Nota: Este cambio solo es necesario para GitLab Enterprise. Esta configuración no se aplica a GitHub ni a Bitbucket.
    1. Inicie sesión en la instancia de GitLab Enterprise como administrador.
    2. Vaya a la configuración de red con una URL como, http://{gitlab-server}/admin/application_settings/network.
    3. Expanda Solicitudes salientes y haga clic en:
      • Permitir solicitudes a la red local desde enlaces web y servicios.
      • Permitir solicitudes a la red local desde el enlace del sistema.
  • Para las canalizaciones que desee activar, compruebe que estén establecidas las propiedades de entrada para insertar parámetros de Git cuando se ejecute la canalización.

    Cuando configure la canalización para que utilice el activador de Git, configure los parámetros de entrada en la pestaña Entrada.

    Para obtener información sobre los parámetros de entrada, consulte Planificar una compilación nativa de CICD en Code Stream antes de agregar tareas manualmente.

Procedimiento

  1. En Code Stream, haga clic en Activadores > Git.
  2. Haga clic en la pestaña Webhooks para Git y, a continuación, haga clic en Nuevo webhook para Git.
    1. Seleccione un proyecto.
    2. Introduzca un nombre descriptivo y una descripción para el webhook.
    3. Seleccione un endpoint de Git que esté configurado para la rama que desea supervisar.
      Cuando crea el webhook, la definición de este incluye los detalles actuales del endpoint.
      • Si más adelante cambia el tipo de Git, el tipo de servidor de Git o la URL del repositorio de Git en el endpoint, el webhook ya no podrá activar una canalización porque intentará acceder al repositorio de Git con los detalles originales del endpoint. Debe eliminar el webhook y volver a crearlo con el endpoint.
      • Si más adelante cambia el tipo de autenticación, el nombre de usuario o el token privado del endpoint, el webhook seguirá funcionando.
      • Si utiliza un repositorio de BitBucket, la URL del repositorio debe tener uno de estos formatos: https://api.bitbucket.org/{user}/{repo name} o http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}.
      Nota: Si creó previamente un webhook con un endpoint de Git que utiliza una contraseña para la autenticación básica, debe eliminar y redefinir el webhook con un endpoint de Git que utilice un token privado para la autenticación.
      Consulte Cómo se puede integrar Code Stream con Git.
    4. (opcional) Introduzca la rama que desea que el webhook supervise.
      Si se deja la rama sin especificar, el webhook supervisa la rama configurada para el endpoint de Git.
    5. (opcional) Genere un token secreto para el webhook.
      Si utiliza un token secreto, Code Stream genera un token de cadena aleatorio para el webhook. A continuación, cuando el webhook recibe datos de eventos de Git, envía los datos con el token secreto. Code Stream usa la información para determinar si las llamadas proceden del origen esperado, como la instancia, el repositorio y la rama de GitHub configurados. El token secreto proporciona una capa adicional de seguridad que se utiliza para comprobar que los datos de eventos de Git provienen del origen correcto.
    6. (opcional) Proporcione inclusiones o exclusiones de archivos como condiciones para el activador.
      • Inclusiones de archivos. Si alguno de los archivos de una confirmación coincide con los archivos especificados en las expresiones regulares o rutas de inclusión, la confirmación activa las canalizaciones. Con una expresión regular especificada, Code Stream solo activa las canalizaciones cuando los nombres de archivo en el conjunto de cambios coinciden con la expresión proporcionada. El filtro de expresiones regulares es útil cuando se configura un activador para varias canalizaciones en un solo repositorio.
      • Exclusiones de archivos. Cuando todos los archivos de una confirmación coinciden con los archivos especificados en las rutas de exclusión o en las expresiones regulares, no se activan las canalizaciones.
      • Priorizar exclusiones. Cuando se activa, la prioridad de exclusión garantiza que las canalizaciones no se activen aunque alguno de los archivos de una confirmación coincida con los archivos especificados en las expresiones regulares o las rutas de exclusión. De forma predeterminada, esta opción está desactivada.
      Si las condiciones cumplen con las inclusiones y las exclusiones de archivos, las canalizaciones no se activan.

      En el siguiente ejemplo, tanto las inclusiones como las exclusiones de archivos son condiciones para el activador.

      Las inclusiones y exclusiones de archivos y sus valores aparecen en la pestaña Webhooks para Git en el activador de Git y pueden ser sin formato o una expresión regular.

      • Para las inclusiones de archivos, una confirmación con cualquier cambio en runtime/src/main/a.java o cualquier archivo Java activará las canalizaciones definidas en la configuración de eventos.
      • Para las exclusiones de archivos, una confirmación con cambios solo en ambos archivos no activará las canalizaciones configuradas en las configuraciones de eventos.
    7. Para el evento de Git, seleccione una solicitud Push o Pull.
    8. Introduzca el token de API.
      El token de API de CSP lo autentica para las conexiones de API externas con Code Stream. Para obtener el token de API:
      1. Haga clic en Generar token.
      2. Introduzca la dirección de correo electrónico asociada con el nombre de usuario y la contraseña y haga clic en Generar.
        El token que se genera es válido durante seis meses. También se conoce como token de actualización.
        • Para mantener el token como una variable para un uso futuro, haga clic en Crear variable, introduzca un nombre para la variable y haga clic en Guardar.
        • Para conservar el token como valor de texto para usarlo en el futuro, haga clic en Copiar y pegue el token en un archivo de texto para guardarlo de forma local.
        Puede elegir entre crear una variable y almacenar el token en un archivo de texto para utilizarlo en el futuro.
      3. Haga clic en Cerrar.
    9. Seleccione la canalización para que se active el webhook.
      Si la canalización incluye parámetros de entrada personalizados agregados, la lista Parámetros de entrada muestra parámetros y valores. Puede introducir valores para los parámetros de entrada que se transferirán a la canalización con el evento activador. También puede dejar los valores en blanco o utilizar los valores predeterminados si se definieron.

      Para obtener información sobre los parámetros de entrada de inserción automática de los activadores de Git, consulte Requisitos previos.

    10. Haga clic en Crear.
      El webhook aparece como una nueva tarjeta.
  3. Haga clic en la tarjeta del webhook.
    Cuando el formulario de datos de webhook vuelve a aparecer, verá una URL de webhook agregada a la parte superior del formulario. El webhook de Git se conectará al repositorio de GitHub a través de la URL del webhook.

    La URL del webhook de Git, que se copia y se utiliza en el repositorio de Git, aparece en la pestaña Webhooks para Git en el activador de Git.

  4. En una nueva ventana del explorador, abra el repositorio de GitHub que se conecta a través del webhook.
    1. Para ver el webhook que agregó en Code Stream, haga clic en la pestaña Configuración y seleccione Webhooks.
      En la parte inferior de la lista de webhooks, verá la misma URL de webhook.

      En el repositorio de GitHub, la lista de webhooks muestra la misma URL de webhook de Git en la parte inferior de la lista.

    2. Para realizar un cambio de código, haga clic en la pestaña Código y seleccione un archivo de la rama. Después de editar el archivo, confirme el cambio.
    3. Para comprobar que la URL del webhook funcione, haga clic en la pestaña Configuración y seleccione Webhooks nuevamente.
      En la parte inferior de la lista de webhooks, se mostrará una marca de verificación verde junto a la URL del webhook. Cuando el webhook de GitHub es válido, aparece una marca de verificación verde.
  5. Vuelva a Code Stream para ver la actividad en el webhook de Git. Haga clic en Activadores > Git > Actividad.
    En Estado de ejecución, compruebe que la ejecución de la canalización se haya iniciado.

    Cuando un usuario confirma un archivo, activa el activador de Git, y la pestaña Actividad muestra el estado del activador como INICIADO.

  6. Haga clic en Ejecuciones y realice un seguimiento de la canalización mientras se ejecuta.
    Para observar la ejecución de la canalización, puede pulsar Actualizar.

    Después de que se activa la canalización, la ejecución de la canalización muestra el estado EN EJECUCIÓN.

Resultados

Enhorabuena. Utilizó correctamente el activador para Git.