Introducción

Preparar a los estudiantes con un flujo de trabajo moderno que integre análisis de datos y control de versiones es una habilidad invaluable. El problema con el PAT (Personal Access Token) es muy común, y la clave está en no usarlo directamente en la terminal cuando pide la contraseña, sino en configurar las credenciales de forma segura y permanente.

A continuación, se presenta una guía detallada, pensada para estudiantes de ingeniería, que explica la causa del problema y la solución recomendada actualmente, seguida de un ejercicio práctico relevante para sus áreas de estudio.

Guía Definitiva para Conectar Posit Cloud con GitHub 🚀

Esta guía muestra cómo conectar de forma correcta y segura su entorno de trabajo en Posit Cloud (anteriormente RStudio Cloud) con GitHub. Olvídense de los errores de autenticación y aprendan el método profesional para gestionar su código.

¿Por Qué Me Pide Usuario y Contraseña y Rechaza mi Token?

Este es el punto central de la confusión. Desde 2021, GitHub ya no permite usar tu contraseña de cuenta para operaciones de Git (como push, pull, clone). En su lugar, se debe usar un Token de Acceso Personal (PAT).

El problema es que, por defecto, la terminal de Git te pide “Username” y “Password”. Muchos intentan poner su usuario de GitHub y pegar el PAT en el campo de la contraseña. ¡Esto a menudo falla!

La solución no es pegar el token cada vez, sino enseñarle a Git a usar ese token de forma automática y segura. Para esto, en el ecosistema de R y RStudio/Posit Cloud, las herramientas ideales son los paquetes usethis y gitcreds.

Paso 1: Generar tu Token de Acceso Personal (PAT) en GitHub 🔑

Primero, necesitamos crear el PAT en GitHub. Este token es como una contraseña de un solo uso y con permisos específicos para una aplicación.

  • Inicia sesión en tu cuenta de GitHub.
  • Ve a tu perfil en la esquina superior derecha, haz clic en Settings.
  • En el menú de la izquierda, baja hasta el final y haz clic en Developer settings.
  • Selecciona Personal access tokens y luego Tokens (classic).
  • Haz clic en Generate new token (y elige “Generate new token (classic)”).
  • Nota (Note): Dale un nombre descriptivo, como Posit Cloud RStudio.
  • Expiración (Expiration): Selecciona una duración. Para empezar, 30 o 90 días es una buena opción. ¡Recuerda que tendrás que renovarlo cuando expire!
  • Permisos (Scopes): Esta es la parte más importante. Debes seleccionar los permisos que le das al token. Para nuestro uso, marca la casilla principal de repo. Esto le dará todos los permisos necesarios para clonar, hacer push, pull, etc., en tus repositorios.
  • Haz clic en Generate token.
  • ¡ACCIÓN CRÍTICA! GitHub te mostrará el token una sola vez. Cópialo inmediatamente y guárdalo en un lugar seguro y temporal (un bloc de notas, por ejemplo). Si lo pierdes, tendrás que generar uno nuevo. El token se verá algo así: ghp_aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890.

Paso 2: Configurar Git y Guardar tus Credenciales en Posit Cloud

Ahora vamos a Posit Cloud para configurar Git y almacenar de forma segura el PAT que acabas de crear.

  • Abre un proyecto en Posit Cloud.
  • Ve a la pestaña de la Consola (Console) de R.
  • Configura tu identidad en Git: Si es la primera vez que usas Git en este proyecto, ejecuta estas líneas en la consola. Reemplaza los datos con tu nombre de usuario y email de GitHub. # Instala el paquete ‘usethis’ si no lo tienes if (!require(“usethis”)) install.packages(“usethis”)

Carga el paquete

library(usethis)

Configura tu nombre y email (¡deben coincidir con tu cuenta de GitHub!)

use_git_config( user.name = “TuNombreDeUsuarioGitHub”, user.email = “” )

  • Guarda el PAT de forma segura: Ahora viene la magia. Usaremos el paquete gitcreds (que usethis suele instalar como dependencia) para guardar el token.

Instala el paquete ‘gitcreds’ si es necesario

if (!require(“gitcreds”)) install.packages(“gitcreds”)

Ejecuta esta función. Te pedirá que ingreses tu PAT en la consola.

gitcreds::gitcreds_set()

  • Al ejecutar gitcreds::gitcreds_set(), la consola te mostrará un mensaje como este: -> Enter password or token:

  • Pega tu PAT (el que empieza con ghp_…) y presiona Enter. No verás los caracteres mientras escribes, es normal.

  • Te pedirá confirmar. Presiona Enter de nuevo.

¡Listo! ✅ Has guardado tu PAT de forma segura. Posit Cloud ahora lo usará automáticamente cada vez que interactúes con GitHub, y no te volverá a pedir usuario ni contraseña.

Ejercicio Práctico: Análisis de Datos de Precipitación 💧

Este ejercicio simula un escenario real para Ingeniería Agrícola, Agroindustrial y Civil: analizar datos de lluvia de una estación meteorológica para tomar decisiones.

Objetivo

Crear un repositorio en GitHub, clonarlo en Posit Cloud, analizar los datos con R, y subir los resultados (un script y un gráfico) de vuelta a GitHub.

Paso A: Crear el Repositorio en GitHub

  • En tu cuenta de GitHub, crea un nuevo repositorio llamado analisis-precipitacion.
  • Hazlo público (Public).
  • IMPORTANTE: Marca la opción Add a README file.
  • Haz clic en Add .gitignore y busca en la plantilla R. Esto evitará que subas archivos innecesarios.
  • Haz clic en Create repository.

Paso B: Clonar el Repositorio en Posit Cloud

  • En tu repositorio de GitHub, haz clic en el botón verde <> Code y copia la URL HTTPS.
  • En Posit Cloud, ve a tu espacio de trabajo (Your Workspace) y haz clic en New Project -> New Project from Git Repository.
  • Pega la URL que copiaste y haz clic en OK. Posit Cloud creará un nuevo proyecto que es una copia local de tu repositorio.

## Paso C: Añadir Datos y Analizarlos

  • Crear el archivo de datos: En el panel de archivos de Posit Cloud (abajo a la derecha), haz clic en New Folder y llámalo data. Dentro de esa carpeta, crea un nuevo archivo de texto (New File -> Text File) y llámalo precipitacion_sucre.csv. Pega el siguiente contenido y guarda:

Fecha,Precipitacion_mm,Estacion 2024-01-15,5,LaMojana 2024-02-20,2,LaMojana 2024-03-10,15,LaMojana 2024-04-18,80,LaMojana 2024-05-25,150,LaMojana 2024-06-30,220,LaMojana 2024-07-15,180,LaMojana 2024-08-22,160,LaMojana

  • Crear el script de análisis: En el panel de archivos, crea un nuevo R Script (New File -> R Script) y llámalo analisis.R. Pega el siguiente código:

ANÁLISIS DE PRECIPITACIÓN - INGENIERÍA

————————————

1. Cargar librerías (tidyverse es un conjunto de paquetes para ciencia de datos)

Si no están instaladas, la primera vez debes correr: install.packages(“tidyverse”)

library(tidyverse)

library(lubridate) # Para manejar fechas fácilmente

2. Cargar los datos

Usamos readr (parte de tidyverse) para leer el CSV

datos_lluvia <- read_csv(“data/precipitacion_sucre.csv”)

3. Procesamiento y análisis

Extraer el mes de la fecha y calcular el total de lluvia por mes

analisis_mensual <- datos_lluvia %>% mutate(Mes = month(Fecha, label = TRUE, abbr = FALSE)) %>% group_by(Mes) %>% summarise(PrecipitacionTotal_mm = sum(Precipitacion_mm))

Imprimir el resultado en la consola

print(“Resumen de precipitación mensual:”)

print(analisis_mensual)

4. Visualización

Crear un gráfico de barras para visualizar los resultados

grafico_precipitacion <- ggplot(analisis_mensual, aes(x = Mes, y = PrecipitacionTotal_mm)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(
    title = "Precipitación Mensual Total en la Estación 'La Mojana'",
    subtitle = "Año 2024 (Datos parciales)",
    x = "Mes",
    y = "Precipitación Total (mm)"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Imprimir el gráfico en la pestaña 'Plots'

print(grafico_precipitacion)

5. Guardar el gráfico

Creamos una carpeta para guardar las salidas

if (!dir.exists(“output”)) dir.create(“output”)

ggsave(“output/grafico_precipitacion_mensual.png”, plot = grafico_precipitacion, width = 8, height = 6)

print(“¡Análisis completado! El gráfico se ha guardado en la carpeta ‘output’.”)

  • Ejecuta el script: Guarda el archivo analisis.R y luego haz clic en el botón Source en la parte superior del editor de scripts (o ejecuta source(‘analisis.R’) en la consola). Verás la tabla de resultados en la consola y el gráfico en la pestaña Plots. Además, se habrá creado una nueva carpeta output con el gráfico guardado como imagen PNG.

Paso D: Sincronizar tu Trabajo con GitHub (Commit & Push)

Ahora, vamos a subir nuestro trabajo (los nuevos archivos y carpetas) a GitHub.

  • Ve a la pestaña Git en el panel superior derecho de Posit Cloud.
  • Verás una lista de todos los archivos nuevos o modificados (.gitignore, analisis.R, data/precipitacion_sucre.csv, output/grafico_precipitacion_mensual.png, etc.).
  • Stage (Preparar): Marca las casillas de todos los archivos que quieres subir. Esto es como ponerlos en una “caja” para enviarlos.
  • Commit (Confirmar): Haz clic en el botón Commit. Se abrirá una ventana.
  • Mensaje de Commit: Escribe un mensaje descriptivo en el campo “Commit message”. Un buen mensaje explica qué hiciste. Por ejemplo: Añade script de análisis y datos de precipitación.
  • Haz clic en Commit. Has guardado una “foto” de tu trabajo en tu repositorio local.
  • Push (Empujar): Finalmente, haz clic en el botón Push (la flecha verde hacia arriba). Esto enviará tus cambios confirmados desde Posit Cloud a tu repositorio en GitHub.
    • Como ya configuraste tus credenciales con gitcreds, no te pedirá usuario ni contraseña. Simplemente se conectará y subirá los archivos. Verificación Final

Ve a tu repositorio en GitHub en el navegador. ¡Actualiza la página y verás que ahora contiene las carpetas data y output, y el script analisis.R!

Solución de Problemas Comune

  • “Sigo recibiendo el pop-up de usuario/contraseña”: Asegúrate de haber ejecutado gitcreds::gitcreds_set() y pegado el token correctamente. Intenta ejecutarlo de nuevo.
  • “Error: repository not found”: Verifica que la URL del repositorio que clonaste sea la correcta y que tu PAT tenga los permisos de repo activados.
  • “Mi token expiró”: Ve a GitHub, genera un nuevo token (puedes editar el existente para renovar la fecha) y vuelve a ejecutar gitcreds::gitcreds_set() en la consola de Posit Cloud para guardarlo.

Este flujo de trabajo es la base de la colaboración y el desarrollo de software moderno. Dominarlo es una habilidad fundamental no solo para R, sino también cuando trabajen con Python en VS Code para sus proyectos de Streamlit.