Cerrar las propuestas inactivas

Puedes utilizar las GitHub Actions para comentar o cerrar las propuestas que han estado inactivas por algún tiempo.

Introducción

Este tutorial ilustra cómo utilizar la acción actions/stale para comentar y cerrar las propuestas que han estado inactivas por algún tiempo. Por ejemplo, puedes comentar si una propúesta ha estado inactiva durante 30 días para pedir a los participantes que tomen alguna acción. Posteriormente, si no hay ningún tipo de actividad en los siguientes 14 días, puedes cerrar la propuesta.

En el tutorial, prmero crearás un archivo de flujo de trabajo que utilice la acción actions/stale. Después, personalizarás el flujo de trabajo de acuerdo con tus necesidades.

Crear un flujo de trabajo

  1. Elige un repoisitorio en donde quieras aplicar este fluljo de trabajo de administración de proyectos. Puedes utilizar un repositorio existente al cual tengas acceso de escritura o puedes crear un repositorio nuevo. Para obtener más información sobre la creación de repositorios, consulta "Crear un repositorio nuevo."

  2. En tu repositorio, crea un archivo que se llame .github/workflows/YOUR_WORKFLOW.yml, reemplazando a YOUR_WORKFLOW con un nombre de tu elección. Este es un archivo de flujo de trabajo. Para obtener más información acerca de cómo crear archivos nuevos en GitHub, consulta la sección "Crear archivos nuevos".

  3. Copia el siguiente contenido de YAML en tu archivo de flujo de trabajo.

    YAML
    name: Close inactive issues
    on:
      schedule:
        - cron: "30 1 * * *"
    
    jobs:
      close-issues:
        runs-on: ubuntu-latest
        permissions:
          issues: write
          pull-requests: write
        steps:
          - uses: actions/stale@v3
            with:
              days-before-issue-stale: 30
              days-before-issue-close: 14
              stale-issue-label: "stale"
              stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
              close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
              days-before-pr-stale: -1
              days-before-pr-close: -1
              repo-token: ${{ secrets.GITHUB_TOKEN }}
  4. Personaliza los parámetros en tu archivo de flujo de trabajo:

    • Cambia el valor de on.schedule para que dicte cuándo quieres que se ejecute este flujo de trabajo. En el ejemplo anterior, el flujo de trabajo se ejecutará diario a la 1:30 UTC. Para obtener más información sobre los flujos de trabajo que has programado, consulta la sección "Ejemplos programados".
    • Cambia el valor de days-before-issue-stale a la cantidad de días de inactividad para esperar antes de que la acción actions/stale etiquete una propuesta. Si quieres que esta acción jamás etiquete las propuestas, configura el valor en -1.
    • Cambia el valor de days-before-issue-close a la cantidad de días sin actividad a esperar antes de que la acción actions/stale cierre una propuesta. Si quieres que esta acción jamás cierre las propuestas, configura el valor en -1.
    • Cambia el valor de stale-issue-label a la etiqueta que quieras aplicar a las propuestas que hayan estado inactivas por la cantidad de tiempo que especificaste en days-before-issue-stale.
    • Cambia el valor de stale-issue-message al comentario que quieres agregar a las propuestas que etiqueta la acción actions/stale.
    • Cambia el valor de close-issue-message al comentario que quieres agregar a las propuestas que cerró la acción actions/stale.
  5. Confirma tu archivo de flujo de trabajo en la rama predeterminada de tu repositorio. Para obtener más información, consulta "Crear nuevos archivos."

Resultados esperados

Con base en el parámetro schedule (por ejemplo, todos los días a la 1:39 UTC), tu flujo de trabajo encontrará propuestas que hayan estado inactivas por el periodo de tiempo que especificaste y agregará el comentario y etiqueta que especificaste. Adicionalmente, tu flujo de trabajo cerrará cualquier propuesta que se haya etiquetado previamente si no ha habido ningún tipo de actividad adicional en el periodo de tiempo que especificaste.

Nota: El evento de schedule puede retrasarse durante periodos de cargas algas de ejecuciones de flujo de trabajo de GitHub Actions. Los tiempos de carga alta incluyen el inicio de cada hora. Para aminorar la posibilidad de los retrasos, programa tu flujo de trabajo para que se ejecute en una porción diferente de la hora.

Puedes ver el historial de tus ejecuciones de flujo de trabajo para ver que este flujo de trabajo se ejecute regularmente. Para obtener más información, consulta la sección "Visualizar el historial de ejecuciones de un flujo de trabajo".

Este flujo de trabajo solo etiquetará o cerrará 30 propuestas a la vez para evitar exceder el límite de tasa. Puedes configurar esto con el ajuste de operations-per-run. Para obtener más información, consulta la documentación de la acción actions/stale.

Pasos siguientes

  • Para aprender más sobre las cosas adicionales que puedes hacer con la acción actions/stale, como cerrar las solicitudes de cambios inactivas, ignorar las propuestas que tengan ciertas etiquetas o hitos, o verificar solo las propuestas que tengan ciertas etiquetas, consulta la documentación de la acción actions/stale.
  • Busca en GitHub los ejemplos de los flujos de trabajo utilizando esta acción.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.