{"meta":{"title":"Inaktive Benutzer daran erinnern, ihre GitHub Copilot-Lizenz zu verwenden","intro":"Verwenden Sie die GitHub API, um inaktive Benutzer zu identifizieren und ihnen bei den ersten Schritten zu helfen.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/roll-out-at-scale","title":"Rollout im großen Maßstab"},{"href":"/de/copilot/tutorials/roll-out-at-scale/assign-licenses","title":"Lizenzen zuweisen"},{"href":"/de/copilot/tutorials/roll-out-at-scale/assign-licenses/remind-inactive-users","title":"Erinnern inaktiver benutzender Personen"}],"documentType":"article"},"body":"# Inaktive Benutzer daran erinnern, ihre GitHub Copilot-Lizenz zu verwenden\n\nVerwenden Sie die GitHub API, um inaktive Benutzer zu identifizieren und ihnen bei den ersten Schritten zu helfen.\n\nWenn Sie GitHub Copilot in einem Unternehmen einführen, ist es wichtig, im Blick zu behalten, welche Benutzer ihre Copilot-Lizenz verwenden, damit Sie effektiv reagieren können, indem Sie ungenutzte Lizenzen neu zuweisen oder Benutzern den Einstieg in Copilot erleichtern.\n\nMit dem Endpunkt der API zum [Auflisten aller Copilot-Arbeitsplatzzuweisungen für eine Organisation](/de/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization) kannst du für alle Benutzenden, denen in einer Organisation eine Lizenz zugewiesen ist, das Datum der letzten Aktivität ermitteln. Anschließend kannst du automatisiert reagieren, indem du nach den Benutzenden filterst, die ihre Lizenz für einen bestimmten Zeitraum nicht verwendet haben, und ihnen eine Erinnerung sendest.\n\n## Schreiben der Erinnerungsnachricht\n\nIhre Erinnerung für inaktive Nutzer sollte Nutzern helfen, gängige Hürden bei der Einführung von Copilot zu überwinden. Wir empfehlen, konkrete Hindernisse in deinem Unternehmen zu ermitteln, indem du Umfragen durchführst oder dich in der Entwicklungsabteilung umhörst.\n\nDie Nachricht kann beispielsweise Informationen und Links enthalten, die Benutzenden dabei helfen:\n\n* Installieren Sie Copilot in ihrer Umgebung.\n* Richten Sie Copilot für die Verwendung mit dem Proxy oder der Firewall Ihres Unternehmens ein.\n* Holen Sie in Ihrer täglichen Arbeit das Beste aus Copilot heraus.\n\nDu solltest auch alle Maßnahmen klar kommunizieren, die du ergreifen wirst, wenn die Lizenz weiterhin nicht verwendet wird, z. B. das Widerrufen der Lizenz.\n\n### Beispielerinnerung\n\nIm nächsten Abschnitt wird diese Meldung in einer Automatisierung verwendet, die ein Problem für jeden inaktiven Benutzer erstellt.\n\n> Wir haben festgestellt, dass Sie Ihre Ihnen zugewiesene Lizenz für GitHub Copilot seit 30 Tagen nicht genutzt haben. Hier sind einige Ressourcen, die Ihnen beim get started helfen können:\n>\n> * Wenn Sie Copilot in Ihrer Umgebung noch nicht eingerichtet haben, siehe [Einrichten von GitHub Copilot für die eigene Nutzung](/de/copilot/how-tos/set-up/set-up-for-self) oder [Behandeln häufiger Probleme mit GitHub Copilot](/de/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues).\n> * Bewährte Methoden und Ratschläge zu getting started finden Sie unter [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/get-started/best-practices) oder [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/concepts/prompting/prompt-engineering).\n> * Beispiele für bestimmte Vorgänge finden Sie unter [GitHub Copilot Kochbuch](/de/copilot/tutorials/copilot-cookbook).\n>\n> Wenn Sie keinen Zugriff auf Copilot mehr benötigen, teilen Sie uns dies bitte in diesem Ticket mit. Wenn Ihre Lizenz für weitere 30 Tage inaktiv bleibt, widerrufen wir sie, um access für einen anderen Benutzer freizugeben.\n\n#### Beispielerinnerung in 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## Erinnerung automatisieren mit GitHub Actions\n\nIm folgenden Beispielworkflow werden mithilfe der API die Benutzer in einer Organisation ermittelt, die ihre Lizenz entweder 30 Tage lang nicht verwendet haben oder sie seit der Zuweisung des Sitzes überhaupt nicht genutzt haben. Anschließend wird ein Problem für jedes Benutzerkonto erstellt. Dieses einfache Beispiel lässt sich jederzeit an deine Anforderungen anpassen.\n\nSo verwendest du diesen Workflow:\n\n1. Erstelle ein Label in dem Repository, in dem Erinnerungsprobleme erstellt werden. Nenne es `copilot-reminder`. Wir verwenden dieses Label, um zu überprüfen, ob für eine inaktive benutzende Person bereits ein Erinnerungsproblem geöffnet wurde.\n\n   Informationen zum Erstellen einer Bezeichnung findest du unter [Verwalten von Labels](/de/issues/using-labels-and-milestones-to-track-work/managing-labels#creating-a-label).\n2. Speichern Sie Ihre Erinnerungsnachricht, z. B. die in [Der Beispielerinnerung in Markdown](#example-reminder-in-markdown) bereitgestellte Erinnerung, als GitHub Actions Variable in Ihrem Repository oder Ihrer Organisation. Nenne die Variable `COPILOT_REMINDER_MESSAGE`.\n\n   Informationen zum Erstellen einer Variablen findest du unter [Speichern von Informationen in Variablen](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables#creating-configuration-variables-for-a-repository).\n3. Erstellen Sie eine personal access token mit der Berechtigung, den API-Endpunkt [Alle Copilot-Sitzplatzzuweisungen für eine Organisation auflisten](/de/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization) aufzurufen. Du kannst beispielsweise ein granulares Token mit den folgenden Angaben erstellen:\n\n   * **Ressourceneigentümer**: Die Organisation, in der du nach inaktiven Benutzern suchst.\n   * **Berechtigungen der Organisation**: GitHub Copilot Business (schreibgeschützt).\n\n   Informationen zum Erstellen eines Tokens finden Sie unter [Verwalten deiner persönlichen Zugriffstoken](/de/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n4. Speichern Sie das Zugriffstoken als geheimen GitHub Actions Schlüssel in Ihrem Repository oder Ihrer Organisation. Rufe das geheimnisvolle Element `COPILOT_LICENSE_READ` auf.\n\n   Informationen zum Erstellen eines geheimen Schlüssels finden Sie unter [Verwenden von Geheimnissen in GitHub-Aktionen](/de/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#creating-secrets-for-a-repository).\n5. Erstelle den Workflow mithilfe des folgenden Beispiels in dem Repository, in dem die Erinnerungsissues erstellt werden sollen.\n\n   Wenn Sie neu bei GitHub Actions sind, lesen Sie [Schnellstart für GitHub Actions](/de/actions/get-started/quickstart).\n6. Wenn Sie die Probleme in einem anderen Repository als dem Repository erstellen möchten, in dem sich der Workflow befindet, ersetzen Sie `${{ github.repository }}` in den Befehlen `gh` durch den Namen des Repositorys, in dem die Erinnerungsprobleme erstellt werden sollen. Beispiel: `octo-org/octo-repo`\n\n### Beispielworkflow\n\n> \\[!NOTE] In diesem Beispiel wird davon ausgegangen, dass du Lizenzen über eine Organisation zuweist. Ähnliche API-Endpunkte sind für Unternehmenskonten und Unternehmensteams vorhanden. Weitere Informationen findest du unter [REST-API-Endpunkte für Copilot Benutzerverwaltung](/de/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## Weitere Informationen\n\n* [Metrikdateneigenschaften für GitHub Copilot](/de/copilot/reference/metrics-data#last_activity_at)\n* [Fördern der GitHub Copilot-Einführung in Ihrem Unternehmen](/de/copilot/tutorials/roll-out-at-scale/enable-developers/drive-adoption)\n* [Nachverfolgen der Lizenzaktivierung und der anfänglichen Nutzung mit Copilot-Nutzungsmetriken](/de/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)"}