{"meta":{"title":"Recordar a los usuarios inactivos que usen su licencia de GitHub Copilot","intro":"Use la GitHub API para identificar usuarios inactivos y ayudarles a empezar.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/tutorials","title":"Tutoriales"},{"href":"/es/copilot/tutorials/roll-out-at-scale","title":"Implementación a gran escala"},{"href":"/es/copilot/tutorials/roll-out-at-scale/assign-licenses","title":"Asignar licencias"},{"href":"/es/copilot/tutorials/roll-out-at-scale/assign-licenses/remind-inactive-users","title":"Recordatorios para usuarios inactivos"}],"documentType":"article"},"body":"# Recordar a los usuarios inactivos que usen su licencia de GitHub Copilot\n\nUse la GitHub API para identificar usuarios inactivos y ayudarles a empezar.\n\nAl implementar GitHub Copilot en una empresa, es importante realizar un seguimiento de los usuarios que usan su Copilot licencia, por lo que puede responder de forma eficaz mediante la reasignación de licencias sin usar o ayudar a las personas a empezar a trabajar con Copilot.\n\nPuede usar el punto de conexión de API [Enumerar todas las asignaciones de puestos de Copilot para una organización](/es/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization) para encontrar la fecha de la última actividad de cada usuario que tiene una licencia asignada dentro de una organización. A continuación, puedes responder automáticamente filtrando por los usuarios que no han usado su licencia durante un periodo de tiempo determinado y enviándoles un recordatorio.\n\n## Escribir el mensaje de recordatorio\n\nTu recordatorio a los usuarios inactivos debería ayudarles a superar los obstáculos habituales para la adopción de Copilot. Se recomienda identificar bloqueadores específicos para tu empresa mediante la realización de encuestas o de reuniones con los desarrolladores.\n\nPor ejemplo, el mensaje podría incluir información y vínculos para ayudar a los usuarios a:\n\n* Instale Copilot en su entorno.\n* Configura Copilot para que funcione con el proxy o el cortafuegos de tu empresa.\n* Aprovecha al máximo Copilot en tu trabajo diario.\n\nTambién debes comunicar claramente cualquier otra medida que vayas a tomar si la licencia sigue sin usarse, como revocarla.\n\n### Recordatorio de ejemplo\n\nEn la sección a continuación, usaremos este mensaje en una automatización que crea una incidencia asignada a cada usuario inactivo.\n\n> Hemos notado que no ha utilizado su licencia asignada para GitHub Copilot en 30 días. Estos son algunos recursos que pueden ayudarle a get started:\n>\n> * Si aún no ha configurado Copilot en su entorno, consulte [Configuración de GitHub Copilot para usted mismo](/es/copilot/how-tos/set-up/set-up-for-self) o [Solución de problemas comunes con GitHub Copilot](/es/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues).\n> * Para obtener procedimientos recomendados y consejos sobre getting started, consulte [Procedimientos recomendados para usar GitHub Copilot](/es/copilot/get-started/best-practices) o [Ingeniería de mensajes para GitHub Copilot Chat](/es/copilot/concepts/prompting/prompt-engineering).\n> * Para obtener ejemplos relacionados con tareas específicas, vea [Recetario de GitHub Copilot](/es/copilot/tutorials/copilot-cookbook).\n>\n> Si ya no necesitas acceso a Copilot, háznoslo saber en esta incidencia. Si la licencia permanece inactiva durante más de 30 días, la revocaremos para liberar access para otro usuario.\n\n#### Recordatorio de ejemplo en 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## Automatización del aviso con GitHub Actions\n\nEn el siguiente flujo de trabajo de ejemplo, se usa la API para identificar a los usuarios de una organización que no han utilizado su licencia durante 30 días o no la han utilizado en absoluto desde que se asignó el puesto y, a continuación, se crea una incidencia asignada a cada usuario. Este es un ejemplo sencillo que se puede adaptar para satisfacer tus necesidades.\n\nPara usar este flujo de trabajo:\n\n1. Crea una etiqueta en el repositorio donde se crearán tareas de recordatorio. Llama a la etiqueta `copilot-reminder`. Usaremos esta etiqueta para comprobar si ya se ha abierto una incidencia de recordatorio para cada usuario inactivo.\n\n   Para crear una etiqueta, consulta [Administrar las etiquetas](/es/issues/using-labels-and-milestones-to-track-work/managing-labels#creating-a-label).\n2. Guarde el mensaje de recordatorio, como el que se proporciona en [El recordatorio de ejemplo en Markdown](#example-reminder-in-markdown), como una GitHub Actions variable en el repositorio o la organización. Llama a la variable `COPILOT_REMINDER_MESSAGE`.\n\n   Para crear una variable, consulta [Almacenamiento de información en variables](/es/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables#creating-configuration-variables-for-a-repository).\n3. Crea un personal access token con permiso para llamar al punto final de la API [Mostrar todas las asignaciones de licencias de Copilot de una organización](/es/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization). Por ejemplo, cree un token específico con los detalles siguientes:\n\n   * **Propietario del recurso**: la organización donde buscas usuarios inactivos.\n   * **Permisos de la organización**: GitHub Copilot Business (solo lectura).\n\n   Para crear un token, consulte [Administración de tokens de acceso personal](/es/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token).\n4. Guarde el token de acceso como un GitHub Actions secreto en el repositorio o la organización. Llama al secreto `COPILOT_LICENSE_READ`.\n\n   Para crear un secreto, consulte [Uso de secretos en Acciones de GitHub](/es/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets#creating-secrets-for-a-repository).\n5. Con el ejemplo siguiente, cree el flujo de trabajo en el repositorio donde quiere que se creen las incidencias de recordatorios.\n\n   Si no está familiarizado con GitHub Actions, consulte [Inicio rápido para Acciones de GitHub](/es/actions/get-started/quickstart).\n6. Si desea crear los problemas en un repositorio distinto del que se encuentra el flujo de trabajo, reemplace `${{ github.repository }}` en los comandos /`gh` por el nombre del repositorio donde desea que se creen los problemas de recordatorio. Por ejemplo: `octo-org/octo-repo`.\n\n### Flujo de trabajo de ejemplo\n\n> \\[!NOTE] En este ejemplo se supone que asignas licencias a través de una organización. Existen puntos de conexión de API similares para cuentas empresariales y equipos empresariales. Consulta [Puntos de conexión de la API REST para la administración de usuarios de Copilot](/es/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## Información adicional\n\n* [Propiedades de datos de métricas para GitHub Copilot](/es/copilot/reference/metrics-data#last_activity_at)\n* [Impulsar la adopción de GitHub Copilot en su empresa](/es/copilot/tutorials/roll-out-at-scale/enable-developers/drive-adoption)\n* [Seguimiento de la activación de licencias y el uso inicial con métricas de uso de Copilot](/es/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)"}