Skip to main content

Conectar un repositorio a un paquete

Puede conectar un repositorio a un paquete en GitHub.

¿Quién puede utilizar esta característica?

GitHub Packages está disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud y GitHub Enterprise Server 3.0 o superior
GitHub Packages no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Además, las cuentas que usan planes heredados por repositorio no pueden acceder a los registros que admiten permisos granulares, ya que estas cuentas se facturan por repositorio. Enterprise Managed Users no tienen asignación de almacenamiento individual para publicar paquetes dentro del espacio de nombres de su cuenta, pero pueden publicarse en el espacio de nombres de una organización. Para obtener información adicional sobre Enterprise Managed Users, consulte "Acerca de Enterprise Managed Users". Para obtener la lista de registros que admiten permisos granulares, consulte "Acerca de los permisos para los Paquetes de GitHub". Para más información, consulta "Planes de GitHub".

Al publicar un paquete cuyo ámbito es una cuenta personal o una organización, el paquete no está vinculado a un repositorio de forma predeterminada. Si conectas un paquete a un repositorio, la página de aterrizaje del paquete mostrará información y vínculos del repositorio, tales como el README. También puedes optar por que el paquete herede sus permisos de acceso del repositorio vinculado. Para obtener más información, vea «Configurar la visibilidad y el control de accesos de un paquete».

Conectar un repositorio a un paquete con ámbito de usuario en GitHub

  1. En GitHub, navega hasta la página principal de tu cuenta personal.

  2. En la esquina superior derecha de GitHub, haga clic en su foto de perfil y luego en Your profile (Su perfil).

    Captura de pantalla del menú desplegable en la imagen de perfil de @octocat. "Tu perfil" se destaca en naranja oscuro.

  3. En la página del perfil, en el encabezado, haz clic en la pestaña Paquetes.

  4. Busca y haz clic en el nombre del paquete que quieres administrar.

  5. En las versiones del paquete, haz clic en Conectar repositorio.

  6. Selecciona un repositorio para vincularlo al paquete y, a continuación, haz clic en Conectar repositorio.

Conectar un repositorio a un paquete con ámbito de organización en GitHub

  1. En GitHub, navega a la página principal de tu organización.

  2. En el nombre de la organización, haz clic en la pestaña Paquetes.

    Captura de pantalla de la página de perfil de @octo-org. La pestaña "Paquetes" está resaltada con un contorno naranja.

  3. Busca y haz clic en el nombre del paquete que quieres administrar.

  4. En las versiones del paquete, haz clic en Conectar repositorio.

  5. Selecciona un repositorio para vincularlo al paquete y, a continuación, haz clic en Conectar repositorio.

Conectar un repositorio a una imagen de contenedor que utilice la línea de comandos

Nota: Si publicas un paquete vinculado a un repositorio, el paquete hereda automáticamente los permisos de acceso del repositorio vinculado y los flujos de trabajo de GitHub Actions en el repositorio vinculado automáticamente obtienen acceso al paquete, a menos que la organización haya deshabilitado la herencia automática de los permisos de acceso. Para obtener más información, vea «Configurar la visibilidad y el control de accesos de un paquete».

  1. En el Dockerfile, agrega esta línea y reemplaza OWNER y REPO por tu información:

    LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
    

    Por ejemplo, si es el usuario octocat y posee my-repo añadiría esta línea a su Dockerfile:

    LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo
    

    Para obtener más información, consulte "LABEL" en la documentación oficial de Docker y "Claves de anotación predefinidas" en el repositorio de opencontainers/image-spec.

  2. Crea tu imagen de contenedor. Este ejemplo crea una imagen del Dockerfile en el directorio actual y asigna el nombre de imagen hello_docker.

    docker build -t hello_docker .
    
  3. Opcionalmente, revise los detalles de la imagen de Docker que acaba de crear.

    $ docker images
    > REPOSITORY          TAG         IMAGE ID       CREATED         SIZE
    > hello_docker        latest      142e665b1faa   5 seconds ago   125MB
    > redis               latest      afb5e116cac0   3 months ago    111MB
    > alpine              latest      a6215f271958   5 months ago    5.29MB
    
  4. Asigne un nombre y un destino de hospedaje a la imagen de Docker.

    docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
    

    Reemplaza NAMESPACE por el nombre de la cuenta personal u organización a la que deseas designar un ámbito de paquete.

    Por ejemplo:

    docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
    
  5. Si aún no lo haces, autentícate en el Container registry. Para obtener más información, vea «Trabajar con el registro de contenedores».

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
    > Login Succeeded
    
  6. Sube tu imagen de contenedor al Container registry.

    docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
    

    Por ejemplo:

    docker push ghcr.io/octocat/hello_docker:latest
    

Desvinculación de un repositorio de un paquete en GitHub

Note

Al desvincular un paquete de un repositorio, se quitará la información del repositorio de la página de aterrizaje del paquete y puede afectar al patrón de acceso en función de si el paquete hereda sus permisos de acceso del repositorio. Para obtener más información, consulta "Configurar la visibilidad y el control de accesos de un paquete". Este comportamiento no se aplica a los paquetes de Apache Maven, como se describe en "Acerca de los permisos para los Paquetes de GitHub".

  1. En GitHub, vaya a la página de configuración del paquete que desea desvincular.

  2. En la página Configuración del paquete, verá una sección Origen del repositorio. Si esta sección no está presente, el paquete no está vinculado actualmente a un repositorio.

  3. Haga clic en el icono de papelera en la esquina superior derecha de la sección Origen del repositorio.

Es posible que exista la sección Origen del repositorio, pero no hay ningún icono de papelera presente. Esto se debe a que un origen del repositorio se ha definido como parte del código empaquetado, es decir, un archivo package.json, un archivo .gemspec, sin embargo, no está vinculado realmente a un repositorio en GitHub. Para vincular el paquete a un repositorio, deberá seguir los pasos descritos en la sección anterior.

  1. Confirme que desea desvincular el repositorio del paquete con el diálogo.

Migración de un paquete a otro repositorio

Si actualmente tiene un paquete vinculado a un repositorio y quiere vincularlo a otro, puede hacerlo si desvincula el paquete del repositorio actual y lo vincula al nuevo.

  1. Siga los pasos para desvincularlo, vea "Desvinculación de un repositorio de un paquete en GitHub".
  2. Siga los pasos para vincular el paquete al nuevo repositorio, vea "Conexión de un repositorio a un paquete con ámbito de la organización en GitHub" o "Conexión de un repositorio a un paquete con ámbito de usuario en GitHub".