¿Cómo pagar el submódulo en la acción de GitHub?

3 minutos de lectura

Tengo un repositorio con un submódulo y estoy creando una compilación cuando presiono ciertas ramas o etiquetas. El problema que tengo es que mi paso de pago no puede acceder a mi submódulo. La configuración es:

  1. Ambos repositorios están en GitHub.
  2. Soy el dueño de ambos repositorios.
  3. Ambos repositorios son privados.
  4. Solo se puede acceder a los repositorios con ssh (https deshabilitado).

He intentado usar la acción de GitHub actions/[email protected] en vano. Como se puede ver a continuación, he intentado usar la opción ‘ssh-key’ donde he agregado la clave pública a las claves de implementación de los repositorios de los submódulos y la clave privada a los secretos del repositorio donde ejecuto la acción. Recibo los siguientes mensajes de error:

Fetching the repository
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin __myrepo__
  ERROR: Repository not found.
  Error: fatal: Could not read from remote repository.
  
  Please make sure you have the correct access rights
  and the repository exists.
  The process '/usr/bin/git' failed with exit code 128
  Waiting 13 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin __myrepo__
  ERROR: Repository not found.
  Error: fatal: Could not read from remote repository.
  
  Please make sure you have the correct access rights
  and the repository exists.
  The process '/usr/bin/git' failed with exit code 128
  Waiting 19 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin __myrepo__
  ERROR: Repository not found.
  Error: fatal: Could not read from remote repository.
  
  Please make sure you have the correct access rights
  and the repository exists.
  Error: The process '/usr/bin/git' failed with exit code 128

He probado con y sin el ssh-key así como con true y recursive opción en submodules. El destino del submódulo está en un directorio llamado src. El paso de pago en mi flujo de trabajo es el siguiente:

Step-01:
  runs-on: ubuntu-18.04
  steps:
    - name: Checkout repository
      uses: actions/[email protected]
      with:
        submodules: 'true'
        ssh-key: ${{ secrets.PRIVATE_KEY_FOR_DEPLOY_KEY_IN_SUBMODULE }}

El .gitmodules es:

[submodule "name"]
    path = src/name
    url = [email protected]:user/repository.git
    branch = master

Soy muy nuevo en GitHub Actions (CI/CD en general) y no me siento muy cómodo con los submódulos, por lo que es muy posible que haya cometido algunos errores básicos.

avatar de usuario
Nelumbo

Finalmente lo hice funcionar, completamente gracias a esta.

Para aclarar la situación, se aplica SAML SSO. Entonces, en lugar de usar SSH para intentar acceder al submódulo, usé un token de acceso personal (PAT) donde se autorizó el SSO.

Lo que hice:

  1. Generé un PAT en la configuración de la cuenta.
  2. Habilité SSO y lo autoricé.
  3. Agregué el token en los secretos del repositorio (que quiere acceder al submódulo).
  4. Actualicé el flujo de trabajo a lo siguiente (solo cambie la línea de la tecla ssh).

Step-01:
  runs-on: ubuntu-18.04
  steps:
    - name: Checkout repository
      uses: actions/[email protected]
      with:
        submodules: 'true'
        token: ${{ secrets.PAT_TOKEN }}

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad