Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Trabajar con el registro de Gradle

Puedes configurar a Gradle para que publique paquetes en el registro de Gradle del Registro del paquete de GitHub y para utilizar los paquetes almacenados en el Registro del paquete de GitHub como dependencias en un proyecto de Java.

el Registro del paquete de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, Nube de GitHub Enterprise, GitHub Enterprise Server, y GitHub AE.

Nota: El Registro del paquete de GitHub se encuentra actualmente en beta para GitHub Enterprise Server 2.22. Para unirte al beta de tu instancia de GitHub Enterprise Server, utiliza el formato de registro.

Nota: Cuando instalas o publicas una imagen de docker, Registro del paquete de GitHub no es compatible con capas externas, tales como imágenes de Windows.

Autenticarte en Registro del paquete de GitHub

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en Registro del paquete de GitHub.

Puees utilizar un token de acceso personal (PAT) para autenticarte en el Registro del paquete de GitHub o en la API de GitHub. Cuando creas un token de acceso personal, puedes asignar al token diferentes ámbitos en función de tus necesidades. Para obtener más información sobre los alcances relacionados con los paquetes para un PAT, consulta la sección "Acerca de los permisos para los Paquetes de GitHub".

Para autenticarte en un registro del Registro del paquete de GitHub dentro de un flujo de trabajo de GitHub Actions, puedes utilizar:

  • GITHUB_TOKEN para publicar los paquetes asociados con el repositorio del flujo de trabajo.
  • un PAT para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede acceder el GITHUB_TOKEN).

Para obtener más información sobre el GITHUB_TOKEN que se utiliza en los flujos de trabajo de GitHub Actions, consulta la sección "Autenticarse en un flujo de trabajo". Para obtener más información sobre cómo utilizar el GITHUB_TOKEN con Gradle, consulta la sección "Publicar paquetes de Java con Gradle".

Autenticarte con un token de acceso personal

Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en Registro del paquete de GitHub. Para obtener más información, consulta "Acerca de Registro del paquete de GitHub".

Puedes autenticar a Registro del paquete de GitHub con Gradle usando ya sea Gradle Groovy o Kotlin DSL editando tu archivo build.gradle (Gradle Groovy) o archivo build.gradle.kts (Kotlin DSL) para incluir tu token de acceso personal. También puedes configurar Gradle Groovy y Kotlin DSL para que reconozcan un paquete único o múltiples paquetes en un repositorio.

Reemplaza REGISTRY-URL con la URL para el registro Maven de tu instancia. Si tu instancia tiene habilitado el aislamiento de subdominios, utiliza maven.HOSTNAME. Si tu instancia tiene inhabilitado el aislamiento de subdominios, utiliza HOSTNAME/_registry/maven. Cualquiera que sea el caso, reemplaza HOSTNAME con el nombre de host de tu instancia de GitHub Enterprise Server.

Reemplaza USERNAME con tu nombre de usuario GitHub, TOKEN con tu token de acceso personal, REPOSITORY con el nombre del repositorio que contiene el paquete que deseas publicar y OWNER con el nombre de la cuenta de usuario o de organización en GitHub que posee el repositorio. Dado que las letras mayúsculas no son compatibles, debes usar minúsculas para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

Nota: Registro del paquete de GitHub es compatible con versiones SNAPSHOT de Apache Maven. Para utilizar el repositorio del Registro del paquete de GitHub para descargar artefactos de SNAPSHOT, habilita las SNAPSHOTS en el POM del proyecto consumidor en tu archivo ~/.m2/settings.xml. Para obtener un ejemplo, consulta "Configurar Apache Maven para usar con Registro del paquete de GitHub."

Ejemplo de uso de Gradle Groovy para un paquete único en un repositorio

plugins {
    id("maven-publish")
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        gpr(MavenPublication) {
            from(components.java)
        }
    }
}

Ejemplo usando Gradle Groovy para múltiples paquetes en el mismo repositorio

plugins {
    id("maven-publish") apply false
}
subprojects {
    apply plugin: "maven-publish"
    publishing {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            gpr(MavenPublication) {
                from(components.java)
            }
        }
    }
}

Ejemplo de uso de Kotlin DSL para un paquete único en el mismo repositorio

plugins {
    `maven-publish`
}
publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
            }
        }
    }
    publications {
        register<MavenPublication>("gpr") {
            from(components["java"])
        }
    }
}

Ejemplo de uso de Kotlin DSL para múltiples paquetes en el mismo repositorio

plugins {
    `maven-publish` apply false
}
subprojects {
    apply(plugin = "maven-publish")
    configure<PublishingExtension> {
        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
                credentials {
                    username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                    password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
                }
            }
        }
        publications {
            register<MavenPublication>("gpr") {
                from(components["java"])
            }
        }
    }
}

Publicar un paquete

Predeterminadamente, GitHub publica el paquete en un repositorio existente con el mismo nombre que éste. Por ejemplo, GitHub publicará un paquete denominado com.example.test en el repositorio OWNER/test Registro del paquete de GitHub.

Después de que publiques un paquete, puedes verlo en GitHub. Para obtener más información, consulta "Visualizar paquetes".

  1. Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."

  2. Después de crear tu paquete, puedes publicar el paquete.

    $ gradle publish

Utilizar un paquete publicado

Para utiliza run paquete publicado del Registro del paquete de GitHub, agrégalo como una dependencia y luego agrega el repositorio a tu proyecto. Para obtener más información, consulta "Declarar dependencias" en la documentación de Gradle.

  1. Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."

  2. Agrega las dependencias del paquete a tu archivo build.gradle (Gradle Groovy) o archivo build.gradle.kts (Kotlin DSL).

    Ejemplo utilizando Gradle Groovy:

    dependencies {
        implementation 'com.example:package'
    }

    Ejemplo de uso de Kotlin DSL:

    dependencies {
        implementation("com.example:package")
    }
  3. Agrega el repositorio a tu archivo de build.gradle (Gradel Groovy) o a tu archivo de build.gradle.kts (Kotlin DSL).

    Ejemplo utilizando Gradle Groovy:

    repositories {
        maven {
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
            }
        }
    }

    Ejemplo de uso de Kotlin DSL:

    repositories {
        maven {
            url = uri("https://REGISTRY-URL/OWNER/REPOSITORY")
            credentials {
                username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME")
                password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN")
            }
        }
    }

Leer más