B Tokens de acceso personal a GitHub

Si usted hace push o pull en Git a través de la línea de comandos, puede evitar la petición de autenticación constante almacenando en caché su nombre de usuario y contraseña para el acceso HTTPS o mediante configuración de claves SSH. Esto incluye cualquier operación de Git realizada por RStudio en su nombre.

Pero para algunas operaciones debe llamar al GitHub API (Application Programming Iinterface). Y esto requiere que usted se autentique de una forma diferente.

B.1 GitHub API

La primera razón por la que la mayoría de las personas necesitan el acceso a la API de GitHub es porque desean usar el paquete devtools. Es popular para la función devtools::install_github() para instalar directamente desde GitHub. Esto contrasta con la instalación de un paquete de CRAN a través de install.packages().

¿Por qué instalar desde GitHub en lugar de CRAN?

  • El paquete se desarrolla en GitHub y usted prefiere la versión de desarrollo porque tiene algunas características o correcciones de errores que aún no están en el CRAN.
  • Usted contribuye o utiliza paquetes de R que están en repositorios privados en GitHub (o GitHub Enterprise). CRAN no es una opción.

Otras razones para llamar a la API de GitHub incluyen hacer casi cualquier cosa que pueda hacer en el navegador, especialmente si necesita hacerlo a gran escala, es decir, crear repositorios o usuarios o recuperar datos. Se recomienda el paquete gh para esto. ¡Que debe instalar desde GitHub!

B.2 ¿Cómo autenticarse usted mismo?

Con el acceso a través de la API, ¿qué papel desempeña el nombre de usuario/contraseña HTTPS o las claves SSH? Para la API de GitHub, se utiliza un token de acceso personal (PAT, por sus siglas en inglés), que es una convención seguida por muchas otras API.

Necesitará:

  • Obtener una PAT. Esto se hace en el navegador.
  • Guárdela para que paquetes como devtools puedan encontrarla y utilizarla en su nombre. La ruta de menor resistencia es definirla en el archivo .Renviron como la variable de entorno denominada GITHUB_PAT.

B.3 Paso a paso

Loguéese en su cuenta de GitHub. Vaya a https://github.com/settings/tokens.

“Generate new token”. Déle un nickname que le recuerde el propósito previsto, e.g., “devtools”.

Seleccione los campos que le confieren los privilegios que necesita. En caso de duda, compruebe el campo repo, que es necesario para las operaciones típicas de devtools. Solía haber un conjunto de campos predeterminados, pero ya no parecen estar.

Después de hacer clic en “Generate token”, se mostrará el token. Es una cadena de 40 letras y dígitos aleatorios. Esta es la última vez que lo verá, así que COPIELO AL PORTAPAPELES. Deje esta ventana abierta hasta que haya terminado. Si de alguna manera comete un error con esto, sólo genere una nueva e inténtalo de nuevo.

Ponga su PAT en su archivo .Renviron. Tendrá una línea que se parece a esto:

GITHUB_PAT=8c70fd8419398999c9ac5bacf3192882193cadf2

Pero con su PAT en lugar de la mía. No se preocupe, ¡he revocado esta! Este archivo debe estar alojado en su directorio personal. ¿No está seguro de qué es eso? En R, haga:

Si usted no tiene idea de cómo hacer esto, aquí hay una forma de hacerlo en R:

pero con su PAT en lugar de la mía.

Aquí hay otra forma con RStudio (u otro editor de texto): Haga File> New File> Text file. Crea una línea como esta:

GITHUB_PAT=8c70fd8419398999c9ac5bacf3192882193cadf2

¡Ponga un salto de línea al final! Si está usando un editor que muestra números de línea, debe haber dos líneas, donde la segunda esté vacía.

Guárdelo en su directorio de inicio con el nombre de archivo .Renviron. Si se le pregunta, YES si desea utilizar un nombre de archivo que empiece con un punto .. Tenga en cuenta que, por defecto, los archivos de punto están ocultos en RStudio, pero .Renviron siempre debe ser visible y, por lo tanto, fácil de editar en el futuro.

Reinicie R (Session> Restart R en la barra de menú de RStudio), ya que las variables de entorno se cargan desde .Renviron sólo al inicio de una sesión R. Compruebe que el PAT esté ahora disponible de la siguiente manera:

Debería ver su PAT en la pantalla.

Ahora los comandos que se ejecutan desde el paquete devtools, que consultan GITHUB_PAT de forma predeterminada, podrán acceder a los repositorios privados de GitHub a los que tienen acceso y los pueden instalar con devtools::install_github('username/reponame').

B.4 Una nota sobre seguridad

Muchos paquetes de R que acceden a servicios web, tales como aquellos mantenidos por ROpenSci, dan la opción de almacenar API “tokens” o “keys” como variables de entorno en su archivo .Renviron. A estos ficheros y a este archivo, nunca deben hacérseles commit con GitHub, almacenarlos en Dropbox, o en cualquier otro servicio en línea. No deben aparecer en sus comentarios de código o código. Esta es una razón por la que este archivo se almacena fuera de su carpeta de proyecto. Estos tokens se pueden usar para acceder a sus cuentas y causar todo tipo de estragos. Si comparte erróneamente sus tokens, inicie sesión en el sitio relevante a través del navegador, revoque el token comprometido y genere uno nuevo.

B.5 Por que .Renviron en vez de la configuración por bash?

Preguntas frecuentes: ¿Por qué definir esta variable de entorno a través de .Renviron en lugar de .bash_profile o .bashrc?*

Debido a que hay muchas combinaciones de sistemas operativos y formas de ejecutar R donde el enfoque .Renviron “funciona” y las cosas en bash no. Cuando R es un proceso secundario de, por ejemplo, Emacs o RStudio, no siempre se puede contar con las variables de entorno que se pasan a R. Póngalos en un archivo de inicio específico de R y ahórrese algo de dolor.