Skip to main content

Administración del acceso a otros repositorios dentro del codespace

Puede administrar los repositorios a los cuales puede acceder GitHub Codespaces.

Información general

De manera predeterminada, al codespace se le asigna un token con ámbito con el permiso read o con el permiso read y write en el repositorio desde el que se creó. El ámbito de este token cambia automáticamente en las circunstancias siguientes.

  • Si creas un codespace para un repositorio al que solo tienes acceso de lectura, realiza una confirmación en el codespace o inserta una nueva rama, GitHub Codespaces vincula automáticamente el codespace a una bifurcación nueva o existente del repositorio y actualiza el token para que tenga el permiso read y write para la bifurcación. Para obtener más información, consulte "Utilizar el control de código fuente en tu codespace".
  • Si creas un codespace a partir de una plantilla, publica el codespace en un repositorio nuevo. GitHub Codespaces actualiza el token para que tenga el permiso read y write en el repositorio nuevo. Para obtener más información, consulte "Creación de un codespace a partir de una plantilla".

Para obtener más información, consulte "Seguridad en GitHub Codespaces".

Si el proyecto necesita más permisos para otros repositorios, puede configurarlos en el archivo devcontainer.json, como se describe en "Establecimiento de permisos de repositorio adicionales" más adelante en este artículo. Cuando se muestren permisos en el archivo devcontainer.json, se te pedirá que revises y autorices los permisos adicionales como parte de la creación del codespace para ese repositorio. Cuando hayas autorizado los permisos enumerados, GitHub Codespaces recordará tu elección y no te pedirá autorización a menos que cambien los permisos del archivo devcontainer.json.

Nota: La actualización de los permisos en el archivo devcontainer.json no cambia los permisos de los codespaces existentes. Si necesitas permisos adicionales en un codespace existente, consulte "Solución de problemas de autenticación en un repositorio".

Creación de codespaces con permisos personalizados

Para crear un codespace con permisos personalizados, debes usar uno de los siguientes:

Establecimiento de permisos de repositorio adicionales

Los permisos del repositorio se configuran para GitHub Codespaces en un archivo devcontainer.json. Los permisos personalizados que agregues o cambie solo se aplicarán a los nuevos codespaces creados después de confirmar los cambios en el repositorio. Si agregas o cambias permisos desde dentro de un codespace, esos permisos no se aplicarán al codespace actual, incluso si vuelve a generar el codespace.

  1. Si el repositorio aún no contiene un archivo devcontainer.json, agregue uno ahora. Para obtener más información, consulte "Incorporación de una configuración de contenedor de desarrollo al repositorio".

  2. Edita el archivo devcontainer.json y agrega el nombre del repositorio y los permisos necesarios para el objeto repositories:

    JSON
    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    Notas:

    • Solo puede hacer referencia a repositorios que pertenezcan a la misma cuenta personal u organización que el repositorio en el que esté trabajando actualmente.
    • Puede usar el carácter comodín * para conceder permisos a varios repositorios de una organización. Por ejemplo, para conceder permisos a todos los repositorios de la organización my_org, use my_org/*. Esta sintaxis solo es válida para los espacios de código. En todos los archivos devcontainer.json que se usan para las precompilaciones, debe definir los permisos de cada repositorio por separado. Para obtener más información, consulte "Permiso para que una precompilación acceda a otros repositorios".

    Puede conceder los permisos que quiera, ya sean muchos o pocos, para cada repositorio que se muestra:

    • actions: lectura/escritura
    • checks: lectura/escritura
    • contents: lectura/escritura
    • deployments: lectura/escritura
    • discussions: lectura/escritura
    • issues: lectura/escritura
    • packages: lectura
    • pages: lectura/escritura
    • pull_requests: lectura/escritura
    • repository_projects: lectura/escritura
    • statuses: lectura/escritura
    • workflows: escritura

    Para establecer un permiso para un repositorio en una organización, debes agregar explícitamente el nombre de ese repositorio en el objeto repositories.

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    Para establecer todos los permisos de un repositorio determinado, usa "permissions": "read-all" o "permissions": "write-all" en el objeto de repositorio.

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": "write-all"
            }
          }
        }
      }
    }
    

Autorización de permisos solicitados

Si se definen permisos de repositorio adicionales en el archivo devcontainer.json, se te pedirá que revises y, opcionalmente, autorices los permisos al crear un codespace o una configuración de precompilación para este repositorio. Al autorizar permisos para un repositorio, GitHub Codespaces no se te volverá a pedir a menos que el conjunto de permisos solicitados haya cambiado para el repositorio.

Captura de pantalla de la página de permisos solicitados. Se muestran dos permisos como solicitados: permiso de lectura para metadatos y permiso de escritura para problemas.

Solo debes autorizar los permisos para los repositorios que conoces y en los que confías. Si no confías en el conjunto de permisos solicitados, haz clic en Continue without authorizing (Continuar sin autorizar) para crear el codespace con el conjunto base de permisos. Rechazar permisos adicionales puede afectar a la función del proyecto dentro del codespace, ya que codespace solo tendrá acceso al repositorio desde el que se creó.

Solo puede autorizar los permisos que su cuenta personal ya posee. Si un codespace solicita permisos para repositorios a los que no tienes acceso actualmente, ponte en contacto con un propietario o administrador del repositorio para obtener acceso suficiente e intenta crear de nuevo un codespace.

Información adicional