2023-01-27

Aceptar invites a repos de github desde línea de comando

Si por algún motivo querés aceptar invites a repos desde línea de comando en github, se puede!

Para hacer eso, hay que usar el comando gh y tener estar autenticado via 

$ gh auth login

Una vez que estás autenticado, hay que usar el api de github directamente via gh api, que maneja la autenticación por nosotros y recibe parámetros de forma análoga a curl.

El comando para obtener todos los invites pendientes es:

$ gh api user/repository_invitations

y devuelve un array con todas las invitaciones pendientes del usuario (en json).

Lo importante de ese array es que cada entrada tiene un campo "id". Es algo así:

[
  {
    "id": 12345678,
    "repository": {
      "full_name": "usuario/repo",
      "otras": "cosas",
    },
    "otras": "cosas"
  },
  { "id": "23456789", "otras": "cosas" }
]

Con ese id, podés correr este otro comando para aceptar el invite así:

$ gh api -X PATCH user/repository_invitations/12345678

y si salió todo bien ahora podés hacer clone de ese repo privado así:

$ gh repo clone usuario/repo 

Espero que les sirva!

PD: Las llamadas a la API las deduje de acá.