Skip to main content

Planification de la création d’un problème

Vous pouvez utiliser GitHub Actions pour créer un problème régulièrement pour des éléments tels que des réunions quotidiennes ou des révisions trimestrielles.

Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.

Introduction

Ce tutoriel montre comment utiliser GitHub CLI pour créer un problème sur une base régulière. Par exemple, vous pouvez créer un problème chaque semaine afin de l’utiliser comme ordre du jour d’une réunion d’équipe. Pour plus d’informations sur GitHub CLI, consultez « Utilisation de l’interface CLI de GitHub dans des workflows ».

Dans le tutoriel, vous allez d’abord créer un fichier de flux de travail qui utilise les GitHub CLI. Ensuite, vous personnaliserez le workflow en fonction de vos besoins.

Création du workflow

  1. Choisissez un dépôt où vous souhaitez appliquer ce workflow de gestion de projet. Vous pouvez utiliser un dépôt existant auquel vous avez accès en écriture ou en créer un nouveau. Pour plus d’informations sur la création d’un dépôt, consultez « Création d’un dépôt ».

  2. Dans votre dépôt, créez un fichier nommé .github/workflows/YOUR_WORKFLOW.yml, en YOUR_WORKFLOW remplaçant par un nom de votre choix. Il s’agit d’un fichier de workflow. Pour plus d’informations sur la création de nouveaux fichiers dans GitHub, consultez « Création de fichiers ».

  3. Copiez le contenu YAML suivant dans votre fichier de workflow.

    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: false
    
  4. Personnalisez les paramètres dans votre fichier de workflow :

    • Modifiez la valeur de on.schedule pour déterminer quand vous souhaitez que ce workflow s’exécute. Dans l’exemple ci-dessus, le workflow s’exécutera tous les lundis à 7h20 UTC. Pour plus d’informations sur les workflows planifiés, consultez « Événements qui déclenchent des flux de travail ».
    • Remplacez la valeur de ASSIGNEES par la liste des noms d’utilisateur GitHub que vous souhaitez attribuer au problème.
    • Remplacez la valeur de LABELS par la liste des étiquettes que vous souhaitez appliquer au problème.
    • Remplacez la valeur de TITLE par le titre que vous souhaitez attribuer au problème.
    • Remplacez la valeur de BODY par le texte que vous souhaitez afficher dans le corps du message. Le caractère | vous permet d’utiliser une valeur multiligne pour ce paramètre.
    • Si vous souhaitez épingler ce problème dans votre référentiel, définissez PINNED sur true. Pour plus d’informations sur les problèmes épinglés, consultez « Épinglage d’un problème à votre dépôt ».
    • Si vous souhaitez fermer le problème précédent généré par ce workflow chaque fois qu’un nouveau problème est créé, définissez CLOSE_PREVIOUS sur true. Le workflow ferme alors le problème le plus récent dont les étiquettes sont définies dans le champ labels. Pour éviter de fermer le mauvais problème, utilisez une étiquette unique ou une combinaison d’étiquettes.
  5. Commitez votre fichier de workflow dans la branche par défaut de votre dépôt. Pour plus d’informations, consultez « Création de fichiers ».

Résultats attendus

En fonction du paramètre schedule (par exemple, tous les lundis à 7h20 UTC), votre workflow crée un nouveau problème avec les personnes responsables, les étiquettes, le titre et le corps que vous avez spécifiés. Si vous définissez PINNED sur true, le workflow épingle le problème dans votre référentiel. Si vous définissez CLOSE_PREVIOUS sur true, le workflow ferme le problème le plus récent doté des étiquettes correspondantes.

Remarque : L’événement schedule peut être retardé pendant les périodes où les charges des exécutions de workflows GitHub Actions sont élevées. Les périodes de charges élevées incluent le début de chaque heure. Si la charge est suffisamment élevée, certains travaux en file d’attente peuvent être supprimés. Pour réduire le risque de retard, planifiez l’exécution de votre workflow à un autre moment dans l’heure.

Vous pouvez consulter l’historique de vos exécutions de workflow pour afficher régulièrement cette exécution de workflow. Pour plus d’informations, consultez « Affichage de l’historique des exécutions de workflows ».

Étapes suivantes