{"meta":{"title":"Rappelant aux utilisateurs inactifs d’utiliser leur licence Copilot GitHub","intro":"Utilisez l’API GitHub pour identifier les utilisateurs inactifs et les aider à commencer.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/copilot/tutorials/roll-out-at-scale","title":"Déploiement à grande échelle"},{"href":"/fr/copilot/tutorials/roll-out-at-scale/assign-licenses","title":"Attribuer des licences"},{"href":"/fr/copilot/tutorials/roll-out-at-scale/assign-licenses/remind-inactive-users","title":"Rappeler aux utilisateurs inactifs"}],"documentType":"article"},"body":"# Rappelant aux utilisateurs inactifs d’utiliser leur licence Copilot GitHub\n\nUtilisez l’API GitHub pour identifier les utilisateurs inactifs et les aider à commencer.\n\nLorsque vous effectuez un déploiement GitHub Copilot dans une entreprise, il est important de suivre les utilisateurs qui utilisent leur Copilot licence afin de pouvoir répondre efficacement en réaffectant des licences inutilisées ou en aidant les utilisateurs à commencer Copilot.\n\nVous pouvez utiliser le point de terminaison d’API [Répertorier toutes les attributions de sièges Copilot pour une organisation](/fr/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization) afin de trouver la dernière date d’activité pour chaque utilisateur auquel une licence est attribuée dans une organisation. Ensuite, vous pouvez répondre automatiquement en filtrant les utilisateurs qui n’ont pas utilisé leur licence pendant un certain temps et en envoyant un rappel à ces utilisateurs.\n\n## Écriture du message de rappel\n\nVotre rappel destiné aux utilisateurs inactifs doit aider les utilisateurs à surmonter les obstacles courants à l’adoption de Copilot. Nous vous recommandons d’identifier des bloqueurs spécifiques pour votre entreprise en exécutant des enquêtes ou en interviewant des développeurs.\n\nPar exemple, le message peut inclure des informations et des liens pour aider les utilisateurs :\n\n* Installez-le Copilot dans leur environnement.\n* Configurez Copilot pour fonctionner avec le proxy ou le pare-feu de votre entreprise.\n* Tirer le meilleur parti de Copilot dans leur travail quotidien.\n\nVous devez également communiquer clairement toute autre action que vous effectuerez si la licence continue d’être inutilisée, par exemple la révocation de la licence de l’utilisateur.\n\n### Exemple de rappel\n\nDans la section suivante, nous allons utiliser ce message dans une automatisation qui crée un problème affecté à chaque utilisateur inactif.\n\n> Nous avons remarqué que vous n’avez pas utilisé votre licence attribuée pour GitHub Copilot au cours des 30 derniers jours. Voici quelques ressources qui peuvent vous aider à get started :\n>\n> * Si vous n’avez pas encore configuré Copilot dans votre environnement, consultez [Configuration de GitHub Copilot pour vous-même](/fr/copilot/how-tos/set-up/set-up-for-self) ou [Résolution des problèmes courants liés à GitHub Copilot](/fr/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues).\n> * Pour obtenir des conseils et des bonnes pratiques sur getting started, consultez [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/copilot/get-started/best-practices) ou [Ingénierie rapide pour GitHub Copilot Chat](/fr/copilot/concepts/prompting/prompt-engineering).\n> * Pour obtenir des exemples liés à des tâches spécifiques, consultez [livre de recettes GitHub Copilot](/fr/copilot/tutorials/copilot-cookbook).\n>\n> Si vous n’avez plus besoin d’avoir accès à Copilot, veuillez nous en informer dans ce ticket. Si votre licence reste inactive pendant plus de 30 jours, nous le révoquez pour libérer access pour un autre utilisateur.\n\n#### Exemple de rappel dans Markdown\n\n<!-- markdownlint-disable search-replace -->\n\n```markdown copy\nWe noticed you haven't used your assigned license for GitHub Copilot in 30 days. Here are some resources that might help you get started:\n\n* If you haven't yet set up Copilot in your environment, see [Setting up GitHub Copilot for yourself](https://docs.github.com/en/copilot/setting-up-github-copilot/setting-up-github-copilot-for-yourself) or [Troubleshooting common issues with GitHub Copilot](https://docs.github.com/en/copilot/troubleshooting-github-copilot/troubleshooting-common-issues-with-github-copilot).\n* For best practices and advice on getting started, see [Best practices for using GitHub Copilot](https://docs.github.com/en/copilot/using-github-copilot/best-practices-for-using-github-copilot) or [Prompt engineering for GitHub Copilot](https://docs.github.com/en/copilot/using-github-copilot/prompt-engineering-for-github-copilot).\n* For examples related to specific tasks, see [Copilot Chat Cookbook](https://docs.github.com/en/copilot/example-prompts-for-github-copilot-chat).\n\nIf you no longer need access to Copilot, please let us know in this issue. If your license remains inactive for a further 30 days, we'll revoke it to free up access for another user.\n```\n\n<!-- markdownlint-enable search-replace -->\n\n## Automatisation du rappel avec GitHub Actions\n\nL’exemple de flux de travail suivant utilise l’API pour identifier les utilisateurs d’une organisation qui n’ont pas utilisé leur licence pendant 30 jours ou qui ne l’ont jamais utilisée depuis l’attribution du siège, puis crée un problème attribué à chaque utilisateur. Il s’agit d’un exemple simple que vous pouvez adapter pour répondre à vos besoins.\n\nPour utiliser ce flux de travail :\n\n1. Créez une étiquette dans le dépôt où les tickets de rappel seront créés. Appeler le label `copilot-reminder`. Nous allons utiliser cette étiquette pour vérifier si un problème de rappel est déjà ouvert pour chaque utilisateur inactif.\n\n   Pour créer une étiquette, voir [Gestion des étiquettes](/fr/issues/using-labels-and-milestones-to-track-work/managing-labels#creating-a-label).\n2. Enregistrez votre message de rappel, tel que celui fourni dans [l’exemple de rappel dans Markdown](#example-reminder-in-markdown), en tant que GitHub Actions variable dans votre référentiel ou organisation. Appeler la variable `COPILOT_REMINDER_MESSAGE`.\n\n   Pour créer une variable, voir [Stocker des informations dans des variables](/fr/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables#creating-configuration-variables-for-a-repository).\n3. Créez un personal access token disposant de l’autorisation d’appeler le point de terminaison de l’API [Répertorier toutes les attributions de sièges Copilot pour une organisation](/fr/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization). Par exemple, créez un jeton affiné avec les détails suivants :\n\n   * **propriétaire de ressource**: l’organisation où vous recherchez des utilisateurs inactifs.\n   * **Autorisations de l’organisation** : GitHub Copilot Business (en lecture seule).\n\n   Pour créer un jeton, consultez [Gestion de vos jetons d’accès personnels](/fr/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n4. Enregistrez le jeton d’accès GitHub Actions en tant que secret dans votre dépôt ou votre organisation. Appelez le secret `COPILOT_LICENSE_READ`.\n\n   Pour créer un secret, consultez [Utilisation de secrets dans GitHub Actions](/fr/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#creating-secrets-for-a-repository).\n5. À l’aide de l’exemple ci-dessous, créez le workflow dans le dépôt où vous souhaitez que les tickets de rappel soient créés.\n\n   Si vous découvrez GitHub Actions, consultez [Démarrage rapide pour GitHub Actions](/fr/actions/get-started/quickstart).\n6. Si vous souhaitez créer les problèmes dans un référentiel autre que celui dans lequel se trouve le flux de travail, remplacez `${{ github.repository }}` dans les commandes `gh` par le nom du référentiel où vous souhaitez que les problèmes de rappel soient créés. Par exemple : `octo-org/octo-repo`.\n\n### Exemple de flux de travail\n\n> \\[!NOTE] Cet exemple part du principe que vous attribuez des licences via une organisation. Des points de terminaison d’API similaires existent pour les comptes d’entreprise et les équipes d’entreprise. Consultez [Points de terminaison d’API REST pour la gestion des utilisateurs Copilot](/fr/rest/copilot/copilot-user-management).\n\n<!-- markdownlint-disable GHD021 -->\n\n```yaml annotate\n# Name your workflow\nname: Remind inactive users about GitHub Copilot license\n\non:\n  # Run on demand (enables `Run workflow` button on the Actions tab to easily trigger a run manually)\n  workflow_dispatch:\n  # Run the workflow every day at 8am UTC\n  schedule:\n    - cron: '0 8 * * *'\n\njobs:\n  context-log:\n    runs-on: ubuntu-latest\n\n    # Modify the default permissions granted to GITHUB_TOKEN\n    permissions:\n      contents: read\n      issues: write\n\n    steps:\n      - name: Check last GitHub Copilot activity\n        id: check-last-activity\n        run: |\n          # List all GitHub Copilot seat assignments for an organization\n          RESPONSE=$(gh api \\\n            -H \"Accept: application/vnd.github+json\" \\\n            -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n            -H \"Authorization: Bearer ${{ secrets.COPILOT_LICENSE_READ }}\" \\\n            /orgs/${{ github.repository_owner }}/copilot/billing/seats)\n          echo \"Raw Response from gh api:\"\n          echo \"$RESPONSE\"\n\n          # Parse and check each user's `last_activity_at` and `created_at`\n          echo \"$RESPONSE\" | jq -c '.seats[]' | while read -r seat; do\n            LOGIN=$(echo \"$seat\" | jq -r '.assignee.login')\n            LAST_ACTIVITY=$(echo \"$seat\" | jq -r '.last_activity_at')\n            CREATED_AT=$(echo \"$seat\" | jq -r '.created_at')\n\n            # List all open issues with label `copilot-reminder`\n            EXISTING_ISSUES=$(gh issue list --repo ${{ github.repository }} --assignee $LOGIN --label 'copilot-reminder' --json id)\n\n            # Get last activity date and convert dates to seconds since epoch for comparison\n            if [ \"$LAST_ACTIVITY\" = \"null\" ]; then\n              LAST_ACTIVITY_DATE=$(date -d \"$CREATED_AT\" +%s)\n            else\n              LAST_ACTIVITY_DATE=$(date -d \"$LAST_ACTIVITY\" +%s)\n            fi\n            THIRTY_DAYS_AGO=$(date -d \"30 days ago\" +%s)\n\n            # Create issues for inactive users who don't have an existing open issue\n            if [ \"$LAST_ACTIVITY_DATE\" -lt \"$THIRTY_DAYS_AGO\" ] && [ \"$EXISTING_ISSUES\" = \"[]\" ]; then\n              echo \"User $LOGIN has not been active in the last 30 days. Last activity: $LAST_ACTIVITY\"\n\n              NEW_ISSUE_URL=\"$(gh issue create --title \"Reminder about your GitHub Copilot license\" --body \"${{ vars.COPILOT_REMINDER_MESSAGE }}\" --repo ${{ github.repository }} --assignee $LOGIN --label 'copilot-reminder')\"\n            else\n              echo \"User $LOGIN is active or already has an assigned reminder issue. Last activity: $LAST_ACTIVITY\"\n            fi\n          done\n\n        # Set the GH_TOKEN, required for the 'gh issue' commands\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n<!-- markdownlint-enable GHD021 -->\n\n## Pour approfondir\n\n* [Propriétés des données de métriques pour GitHub Copilot](/fr/copilot/reference/metrics-data#last_activity_at)\n* [Promouvoir l'adoption de GitHub Copilot dans votre entreprise](/fr/copilot/tutorials/roll-out-at-scale/enable-developers/drive-adoption)\n* [Suivi de l’activation des licences et de l’utilisation initiale avec les métriques d’utilisation de Copilot](/fr/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)"}