En GitHub ¿cómo puedo conceder permisos de aplicación para comprometerme con una rama con protecciones?

Tengo una aplicación en la que quiero encontrar versiones durante la construcción de CI. Estoy tratando de empujar la versión a retroceder usando las credenciales de las aplicaciones pero consiguiendo estos errores:

+ git push origin HEAD:master
remote: error: GH006: Protected branch update failed for refs/heads/master.        
remote: error: At least 1 approving review is required by reviewers with write access.

Ahora cuando lo hago con mis propias credenciales funciona porque soy un administrador en el repo pero ¿cómo puedo conceder acceso a una aplicación para empujar a dominar a pesar de las protecciones de rama habituales?

Pregunta hecha hace 3 años, 4 meses, 28 días - Por Brian


4 Respuestas:

  • Usted puede (ahora, 2022 de mayo, 18 meses después).

    Permite consistentemente GitHub Apps como excepciones a las reglas de protección de ramas

    Anteriormente, algunas protecciones de ramas sólo permitían conceder excepciones a los usuarios y equipos.
    Ahora, GitHub Las aplicaciones también pueden conceder excepciones a cualquier protección de rama que apoye excepciones.

    Los administradores pueden crear reglas de protección de ramas para hacer cumplir ciertos flujos de trabajo para ramas, como requerir una solicitud de tirada antes de que los cambios puedan fusionarse a una rama.

    Esta es una buena práctica, pero es posible que desee hacer excepciones a una regla para personas, equipos o aplicaciones GitHub específicas.
    Por ejemplo, si tiene una aplicación GitHub que llama a las API GitHub para hacer cambios en un repositorio, es posible que desee permitir que la aplicación haga cambios sin crear una solicitud de tirada.

    Anteriormente, estas excepciones podrían concederse a personas y equipos, pero sólo algunas protecciones permitieron GitHub Apps.

    Ahora, las protecciones de ramas que anteriormente sólo permitían excepciones para personas y equipos también apoyan las aplicaciones GitHub.
    Cuando los administradores configuran estas protecciones de rama, pueden elegir de una lista de aplicaciones GitHub que se instalan y autorizan para el repositorio, como se muestra aquí:

    Image of adding a GitHub App as an exception to a branch protection setting -- https://i0.wp.com/user-images.githubusercontent.com/1767415/168915626-eaccb112-d95f-4828-bbfd-317844aa6cda.png?ssl=1

    (Imágen de añadir una aplicación GitHub como una excepción a un entorno de protección de rama)

    Para información sobre reglas de protección de ramas, visite Gestión de una norma de protección de ramas.

    Para obtener información sobre GitHub Apps, visite Sobre GitHub Apps.

    El Justin.m.chase también añade en las observaciones:

    A pesar de que su aplicación puede pasar por alto las protecciones de rama que requieren un PR, no le permite evitar comprometer protecciones como Controles de estado.

    Respondida el Dec 17, 2020 a las 20:56 - por devninjax

    Votos positivos: 0 | Votos negativos: 0

  • No puedes. Los permisos de la rama están ahí para evitar que nadie empuje a la rama.

    En mi configuración tenemos protección de los administradores empujando también lo que es aún más divertido. Tenemos alrededor de él con dos cuentas de servicio, en el código CI levantamos una PR usando una cuenta de servicio token y luego, indistintamente, las otras cuentas token aprueba y fusiona la

    No es un gran trabajo pero hasta que GitHub haga permisos de grano finos es todo lo que podemos hacer

    Respondida el Dec 17, 2020 a las 21:04 - por debugdragon

    Votos positivos: 0 | Votos negativos: 0

  • Para permitir que una aplicación pueda comprometerse con una rama protegida en GitHub, específicamente ignorando las protecciones de rama que requieren aprobaciones, puedes seguir estos pasos:

    • Ve al repositorio en GitHub donde deseas permitir que la aplicación pueda comprometerse con la rama protegida.
    • En la barra lateral del repositorio, haz clic en "Settings" (Configuración).
    • En la configuración del repositorio, busca y haz clic en la pestaña "Branches" (Ramas).
    • En la sección de "Branch protection rules" (Reglas de protección de ramas), selecciona la rama que deseas modificar.
    • Haz clic en "Edit" (Editar) junto a la regla de protección de la rama.
    • Desplázate hacia abajo hasta encontrar la sección de "Admin enforces policies" (Los administradores aplican políticas) y desmarca la opción que dice "Require pull request reviews before merging" (Requiere revisiones de solicitudes de extracción antes de fusionar).
    • Si lo deseas, también puedes desmarcar otras opciones como "Require status checks to pass before merging" (Requiere que se pasen las comprobaciones de estado antes de fusionar) si es aplicable.
    • Haz clic en "Save changes" (Guardar cambios) para aplicar los cambios en las configuraciones de la rama protegida.

    Una vez que hayas desmarcado la opción que requería la aprobación de revisiones antes de la fusión, la aplicación podrá comprometerse con la rama protegida sin necesidad de aprobaciones adicionales.

    Es importante tener en cuenta que al deshabilitar ciertas protecciones de rama, estás permitiendo que se realicen cambios directamente en la rama sin la revisión y aprobación adecuada, por lo que debes considerar los posibles riesgos de seguridad antes de hacer estos cambios.

    Respondida el Dec 18, 2020 a las 20:57 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Conceder permisos de aplicación para comprometerse con una rama protegida en GitHub

    Para conceder permisos a una aplicación para que se comprometa con una rama protegida en GitHub, sigue estos pasos:

    • Crea una nueva aplicación de GitHub: Ve a "Configuración > Aplicaciones" y haz clic en "Nueva aplicación". Dale a tu aplicación un nombre y descripción.
    • Selecciona los permisos adecuados: En la sección "Permisos", selecciona los siguientes permisos para tu aplicación:
      <ul><li><strong>Leer y escribir:</strong> Permisos de lectura y escritura para todos los repositorios de tu organización o para repositorios específicos.</li></ul>      <ul><li><strong>Estado de confirmación:</strong> Permite que la aplicación cree confirmaciones y establezca el estado de la confirmación.</li></ul>
    
    • Genera un token de acceso: Ve a "Configuración > Fichas de desarrollo" y genera un nuevo token de acceso para tu aplicación. Guarda este token de forma segura, ya que lo necesitarás más adelante.
    • Configura la protección de la rama: Ve al repositorio y haz clic en "Configuración > Protección de la rama". Selecciona la rama que deseas proteger y activa la protección de la rama.
    • Agrega la aplicación como revisor: En "Revisión del código", selecciona "Requerir aprobaciones de revisión" y haz clic en "Administrar revisores". Añade tu aplicación como revisor utilizando el nombre de usuario de la aplicación (por ejemplo, `username-app`).
    • Agrega la aplicación como administrador: En "Restricciones de confirmación", selecciona "Requerir revisiones de confirmación" y haz clic en "Configurar". Añade tu aplicación como administrador utilizando el token de acceso generado anteriormente.
    • Guarda los cambios: Guarda los cambios en la configuración de protección de la rama.

    Una vez que hayas completado estos pasos, tu aplicación tendrá permiso para comprometerse con la rama protegida, incluso si se requieren revisiones de aprobación.

    Nota: Las aplicaciones solo pueden comprometerse con ramas protegidas si tienen permisos de administrador. Si solo necesitas permisos de lectura y escritura, puedes omitir el paso 6.

    Respondida el Dec 18, 2020 a las 21:00 - por Gemini

    Votos positivos: 0 | Votos negativos: 0