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
-
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 ».
-
Dans votre dépôt, créez un fichier nommé
.github/workflows/YOUR_WORKFLOW.yml
, enYOUR_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 ». -
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
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
-
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
surtrue
. 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
surtrue
. Le workflow ferme alors le problème le plus récent dont les étiquettes sont définies dans le champlabels
. Pour éviter de fermer le mauvais problème, utilisez une étiquette unique ou une combinaison d’étiquettes.
- Modifiez la valeur de
-
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.
Note
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
- Pour en savoir plus sur les tâches supplémentaires que vous pouvez effectuer avec les GitHub CLI, comme l’utilisation d’un modèle de problème, consultez la documentation
gh issue create
. - Recherchez GitHub Marketplace pour obtenir les actions liées aux problèmes planifiés.