Nota:
Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.
Introducción
En este tutorial se muestra cómo usar la GitHub CLI para crear un asunto periódicamente. Por ejemplo, puedes crear una incidencia cada semana para usarla como agenda de una reunión de equipo. Para obtener más información sobre GitHub CLI, consulte AUTOTITLE.
En el tutorial, primero vas a crear un archivo de procesos que utiliza la GitHub CLI. Después, personalizarás el flujo de trabajo de acuerdo con tus necesidades.
Crear un flujo de trabajo
-
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 más información sobre cómo crear un repositorio, consulta Crear un repositorio nuevo.
-
En el repositorio, cree un archivo denominado
.github/workflows/YOUR_WORKFLOW.yml, y reemplaceYOUR_WORKFLOWpor el nombre que prefiera. Este es un archivo de flujo de trabajo. Para obtener más información sobre cómo crear nuevos archivos en GitHub, consulta Crear nuevos archivos. -
Copia el siguiente contenido de YAML en tu archivo de flujo de trabajo.
YAML name: Weekly Team Sync on: schedule: - cron: 20 07 * * 1 jobs: create_issue: name: Create team sync issue runs-on: ubuntu-latest permissions: issues: write steps: - name: Create team sync issue run: | if [[ $CLOSE_PREVIOUS == true ]]; then previous_issue_number=$(gh issue list \ --label "$LABELS" \ --json number \ --jq '.[0].number') if [[ -n $previous_issue_number ]]; then gh issue close "$previous_issue_number" gh issue unpin "$previous_issue_number" fi fi new_issue_url=$(gh issue create \ --title "$TITLE" \ --assignee "$ASSIGNEES" \ --label "$LABELS" \ --body "$BODY") if [[ $PINNED == true ]]; then gh issue pin "$new_issue_url" fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} TITLE: Team sync ASSIGNEES: monalisa,doctocat,hubot LABELS: weekly sync,docs-team BODY: | ### Agenda - [ ] Start the recording - [ ] Check-ins - [ ] Discussion points - [ ] Post the recording ### Discussion Points Add things to discuss below - [Work this week](https://github.com/orgs/github/projects/3) PINNED: false CLOSE_PREVIOUS: falsename: Weekly Team Sync on: schedule: - cron: 20 07 * * 1 jobs: create_issue: name: Create team sync issue runs-on: ubuntu-latest permissions: issues: write steps: - name: Create team sync issue run: | if [[ $CLOSE_PREVIOUS == true ]]; then previous_issue_number=$(gh issue list \ --label "$LABELS" \ --json number \ --jq '.[0].number') if [[ -n $previous_issue_number ]]; then gh issue close "$previous_issue_number" gh issue unpin "$previous_issue_number" fi fi new_issue_url=$(gh issue create \ --title "$TITLE" \ --assignee "$ASSIGNEES" \ --label "$LABELS" \ --body "$BODY") if [[ $PINNED == true ]]; then gh issue pin "$new_issue_url" fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} TITLE: Team sync ASSIGNEES: monalisa,doctocat,hubot LABELS: weekly sync,docs-team BODY: | ### Agenda - [ ] Start the recording - [ ] Check-ins - [ ] Discussion points - [ ] Post the recording ### Discussion Points Add things to discuss below - [Work this week](https://github.com/orgs/github/projects/3) PINNED: false CLOSE_PREVIOUS: false -
Personaliza los parámetros en tu archivo de flujo de trabajo:
- Cambie el valor de para determinar cuándo quiere que se ejecute este flujo de trabajo. En el ejemplo anterior, el flujo de trabajo se ejecutará cada lunes a las 7:20 UTC. Para más información sobre los flujos de trabajo programados, consulta AUTOTITLE.
- Cambie el valor de a la lista de nombres de usuario de GitHub que quiera asignar a la incidencia.
- Cambie el valor de a la lista de etiquetas que quiera aplicar a la incidencia.
- Cambie el valor de por el título que quiera que tenga la incidencia.
- Cambie el valor de por el texto que quiera que aparezca en el cuerpo de la incidencia. El carácter permite usar un valor de varias líneas para este parámetro.
- Si quiere anclar esta incidencia en el repositorio, establezca en . Para más información sobre las incidencias ancladas, consulte AUTOTITLE.
- Si quiere cerrar la incidencia anterior generada por este flujo de trabajo cada vez que se crea una nueva incidencia, establezca en . El flujo de trabajo cerrará la incidencia más reciente que tenga las etiquetas definidas en el campo . Para evitar que se cierre la propuesta equivocada, utiliza una etiqueta única o una combinación de etiquetas.
-
Confirma tu archivo de flujo de trabajo en la rama predeterminada de tu repositorio. Para más información, consulta Crear nuevos archivos.
Resultados esperados
En función del parámetro (por ejemplo, cada lunes a las 7:20 UTC), el flujo de trabajo creará un nuevo problema con los responsables, las etiquetas, el título y el cuerpo que haya especificado. Si establece en , el flujo de trabajo anclará la incidencia en el repositorio. Si establece en true, el flujo de trabajo cerrará la incidencia más reciente con las etiquetas coincidentes.
Nota:
El evento schedule se puede retrasar durante periodos de cargas altas de ejecuciones de flujo de trabajo de GitHub Actions. Los tiempos de carga alta incluyen el inicio de cada hora. Si la carga es lo suficientemente alta, es posible que se quiten algunos trabajos en cola. 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 más información, consulta AUTOTITLE.
Pasos siguientes
- Para obtener más información sobre las cosas adicionales que puede hacer con GitHub CLI, como el uso de una plantilla de incidencias, consulte la documentación.
- Busque en GitHub Marketplace para ver las acciones relacionadas con los asuntos programados.