Hay un problema que es extremadamente común entre los estudiantes y tiene una explicación muy simple: GitHub ya no permite autenticarse con contraseña desde agosto de 2021. La ventana que dice “password” en realidad está esperando tu Token de Acceso Personal (PAT) , no la contraseña de tu cuenta de GitHub.

A continuación, una guía detallada, paso a paso, con un ejercicio práctico de Ingeniería Agrícola para que puedas compartirla con tus estudiantes.


📌 Guía Completa: Posit Cloud + GitHub (con Ejercicio de Ingeniería Agrícola)

🔍 Entendiendo el Problema (Para que lo expliques a tus estudiantes)

Cuando haces push en Posit Cloud, aparecen dos ventanas emergentes: 1. Primera ventana: Pide tu usuario de GitHub. 2. Segunda ventana: Pide tu “password” . ¡Aquí está el error! No debes poner la contraseña de GitHub, sino tu Personal Access Token (PAT) .

El PAT es una contraseña especial que generas en GitHub y que sirve específicamente para que aplicaciones externas (como Posit Cloud) accedan a tus repositorios.


🚀 Solución Paso a Paso

Parte 1: Preparación en GitHub (Solo una vez)

1.1 Generar tu Personal Access Token (PAT)

  1. Inicia sesión en GitHub.
  2. Haz clic en tu foto de perfil (esquina superior derecha) y ve a Settings.
  3. En el menú de la izquierda, al final, haz clic en Developer settings.
  4. Luego, haz clic en Personal access tokensTokens (classic).
  5. Haz clic en Generate new token y selecciona Generate new token (classic).
  6. Configura el token:
    • Note (Nombre): Escribe algo como Posit Cloud API.
    • Expiration (Caducidad): Elige 90 días. Recibirás un correo antes de que caduque.
    • Scopes (Permisos): Marca la casilla repo (esto concede acceso completo a tus repositorios).
  7. Haz clic en Generate token.
  8. ¡IMPORTANTE! Copia el token (empieza con ghp_...) y pégalo en un lugar seguro. No volverás a verlo.

1.2 Crear el Repositorio en GitHub

  1. En GitHub, crea un nuevo repositorio (botón verde New).
  2. Nómbralo, por ejemplo: analisis-riego-agricola.
  3. Configúralo como Público.
  4. Marca estas casillas (muy importante):
    • Add a README file.
    • Add .gitignore y elige la plantilla R de la lista.
  5. Haz clic en Create repository.

Parte 2: Configuración en Posit Cloud

2.1 Clonar el Repositorio

  1. En tu repositorio de GitHub, haz clic en el botón verde <> Code y copia la URL HTTPS (ej: https://github.com/tu-usuario/analisis-riego-agricola.git).
  2. En Posit Cloud, ve a New ProjectNew Project from Git Repository.
  3. Pega la URL y haz clic en OK.

2.2 Configurar Git y Guardar el PAT (El paso clave)

Ahora, en la Consola de R (panel inferior izquierdo), ejecuta los siguientes comandos:

  1. Instalar los paquetes necesarios (solo la primera vez):

    install.packages("usethis")
    install.packages("gitcreds")
    install.packages("credentials")
  2. Configurar tu identidad de Git (usa el mismo usuario y email de GitHub):

    library(usethis)
    use_git_config(
      user.name = "TuNombreDeUsuarioGitHub",
      user.email = "tu_email_asociado_a_github@example.com"
    )
  3. Guardar el PAT de forma segura (¡este es el paso mágico!):

    library(gitcreds)
    gitcreds_set()

    Cuando veas el mensaje → Enter password or token: en la consola, pega tu PAT (el que copiaste de GitHub) y presiona Enter. No verás los caracteres mientras escribes, es normal.

    ¡Listo! Posit Cloud guardará tu PAT de forma segura y nunca más te pedirá credenciales para este proyecto.


Parte 3: El Flujo de Trabajo con Git (Commit y Push)

  1. Realiza cambios en tu proyecto (crea archivos, modifica código, etc.).
  2. En el panel de Git (esquina superior derecha de RStudio):
    • Marca las casillas de los archivos que quieres subir (Stage).
    • Escribe un mensaje de commit (ej: “Primer análisis de datos de riego”).
    • Haz clic en Commit.
  3. Haz clic en el botón Push (flecha verde hacia arriba).
  4. Si te vuelve a pedir usuario y contraseña:
    • Usuario: Tu nombre de usuario de GitHub.
    • Contraseña: Tu PAT (no la contraseña de GitHub).

🌾 Ejercicio Práctico: Análisis de Datos de Riego en Ingeniería Agrícola

Contexto: Eres un ingeniero agrícola y necesitas analizar datos de eficiencia de riego en diferentes parcelas para optimizar el uso del agua.

Objetivo: Crear un script en R que calcule estadísticas básicas de eficiencia de riego y genere un gráfico, y subir todo a GitHub.

Paso a paso:

  1. Crear un script en R: En Posit Cloud, ve a FileNew FileR Script.

  2. Escribir el siguiente código (o uno similar):

    # Análisis de Eficiencia de Riego en Parcelas Agrícolas
    # Ingeniería Agrícola - Proyecto de Clase
    
    # 1. Crear datos de ejemplo (eficiencia de riego en %)
    parcela <- c("Parcela A", "Parcela B", "Parcela C", "Parcela D", "Parcela E")
    eficiencia <- c(78.5, 82.3, 65.1, 91.2, 73.8)
    area_ha <- c(2.5, 3.0, 1.8, 4.2, 2.2)
    
    # 2. Crear un data frame
    datos_riego <- data.frame(parcela, eficiencia, area_ha)
    
    # 3. Calcular estadísticas básicas
    media_eficiencia <- mean(eficiencia)
    mediana_eficiencia <- median(eficiencia)
    desviacion_eficiencia <- sd(eficiencia)
    
    # 4. Mostrar resultados en consola
    cat("=== ANÁLISIS DE EFICIENCIA DE RIEGO ===\n")
    cat("Media de eficiencia:", round(media_eficiencia, 2), "%\n")
    cat("Mediana de eficiencia:", round(mediana_eficiencia, 2), "%\n")
    cat("Desviación estándar:", round(desviacion_eficiencia, 2), "%\n\n")
    
    # 5. Identificar parcela con mayor eficiencia
    mejor_parcela <- datos_riego[which.max(eficiencia), ]
    cat("Parcela con mayor eficiencia:", mejor_parcela$parcela, 
        "con", mejor_parcela$eficiencia, "%\n")
    
    # 6. Crear un gráfico de barras
    library(ggplot2)
    
    ggplot(datos_riego, aes(x = parcela, y = eficiencia, fill = parcela)) +
      geom_bar(stat = "identity") +
      labs(title = "Eficiencia de Riego por Parcela",
           x = "Parcela",
           y = "Eficiencia (%)") +
      theme_minimal() +
      geom_text(aes(label = paste0(eficiencia, "%")), 
                vjust = -0.5, size = 4)
    
    # 7. Guardar el gráfico (opcional)
    ggsave("eficiencia_riego.png", width = 8, height = 5)
  3. Guardar el archivo como analisis_riego.R.

  4. Hacer commit y push:

    • Ve al panel de Git.
    • Marca analisis_riego.R.
    • Escribe un mensaje: “Agrego script de análisis de eficiencia de riego”.
    • Haz clic en Commit.
    • Haz clic en Push.
  5. Verificar en GitHub: Ve a tu repositorio en GitHub y confirma que el archivo analisis_riego.R está ahí.


❗ Solución a Problemas Comunes

Problema Solución
Me pide “password” y pongo mi PAT pero lo rechaza Asegúrate de que tu PAT tenga el permiso repo marcado. Si usaste un token “fine-grained”, prueba con un token “classic” (el que usamos en esta guía).
Error 403 (Permisos) Verifica que tu PAT no haya expirado. Ve a GitHub y genera uno nuevo si es necesario. También asegúrate de que el repositorio sea público o que tengas permisos de escritura.
El push falla sin pedir nada (credenciales cacheadas) Posit Cloud puede tener guardada una contraseña antigua. En la consola de R, ejecuta:
gitcreds::gitcreds_delete()
y luego vuelve a ejecutar gitcreds::gitcreds_set() con tu PAT nuevo.
No encuentro la opción “Developer settings” Está al final del menú de la izquierda en Settings de GitHub.
El token no funciona en proyectos nuevos Debes ejecutar gitcreds_set() en cada proyecto nuevo de Posit Cloud donde quieras usar GitHub.

💡 Consejos para tus Estudiantes

  1. El PAT es como una contraseña: No lo compartas con nadie y no lo subas a GitHub (nunca incluyas ghp_... en tu código).
  2. Guarda tu PAT en un lugar seguro: Te será útil para futuros proyectos. Si lo pierdes, tendrás que generar uno nuevo.
  3. Siempre usa el token “classic”: Los tokens “fine-grained” a veces tienen problemas con Posit Cloud.
  4. Flujo de trabajo recomendado: Haz commit frecuentemente con mensajes claros y push al menos al final de cada sesión de trabajo.

¡Espero que esta guía sea de gran ayuda para ti y tus estudiantes! El error es muy común, pero una vez que se entiende el concepto del PAT, el flujo de trabajo con Git se vuelve mucho más sencillo. ¡Mucho éxito con el curso de Ingeniería Agrícola! 🌱