跳至主要内容

将仓库连接到软件包

您可以在 GitHub 上将仓库连接到软件包。

当您发布受个人账户或组织范围限制的软件包时,默认情况下该软件包不会链接到仓库。若将软件包连接到仓库,软件包的着陆页将显示来自仓库的信息和链接(例如 README)。您还可以选择让软件包继承其访问权限来自已链接的仓库。更多信息,请参阅 配置软件包的访问控制和可见性

将仓库连接到用户范围的软件包(GitHub)

  1. 在 GitHub 上,导航到您个人账户的主页。

  2. 在 GitHub 右上角,单击您的个人资料图片,然后单击 您的个人资料

    Screenshot of the dropdown menu under @octocat's profile picture. "Your profile" is outlined in dark orange.

  3. 在您的个人资料页面的页眉,单击 软件包 选项卡。

  4. 搜索并点击您想要管理的软件包名称。

  5. 在您的软件包版本下,点击 连接仓库

  6. 选择要链接到该软件包的仓库,然后点击 连接仓库

将仓库连接到组织范围的软件包(GitHub)

  1. 在 GitHub 上,前往您组织的主页。

  2. 在组织名称下,点击 软件包 选项卡。

    Screenshot of @octo-org's profile page. The "Packages" tab is highlighted with an orange outline.

  3. 搜索并点击您想要管理的软件包名称。

  4. 在您的软件包版本下,点击 连接仓库

  5. 选择要链接到该软件包的仓库,然后点击 连接仓库

使用命令行将仓库连接到容器镜像

注意

如果您发布的软件包已链接到仓库,软件包会自动继承该仓库的访问权限,并且链接仓库中的 GitHub Actions 工作流也会自动获得对该软件包的访问权限,除非您的组织已禁用访问权限的自动继承。更多信息,请参阅 配置软件包的访问控制和可见性

  1. 在您的 Dockerfile 中添加以下行,将 OWNERREPO 替换为您的实际信息。

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

    例如,如果您是用户 octocat 并拥有 my-repo,则在 Dockerfile 中加入此行。

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

    更多信息,请参阅官方 Docker 文档中的 LABEL,以及 opencontainers/image-spec 仓库中的 预定义注释键

  2. 构建您的容器镜像。此示例从当前目录的 Dockerfile 构建镜像,并将镜像命名为 hello_docker

    docker build -t hello_docker .
    
  3. (可选)检查刚创建的 Docker 镜像的详细信息。

    $ 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. 为您的 Docker 镜像指定名称和托管位置。

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

    NAMESPACE 替换为您希望软件包归属的个人账户或组织名称。

    例如

    docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
    
  5. 如果尚未完成,请对容器注册表进行身份验证。更多信息请参阅 使用容器注册表

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
    > Login Succeeded
    
  6. 将您的容器镜像推送到容器注册表。

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

    例如

    docker push ghcr.io/octocat/hello_docker:latest
    

在 GitHub 上解除仓库与软件包的链接

注意

解除软件包与仓库的链接会从软件包的着陆页移除仓库信息,并可能会影响访问模式(取决于软件包是否继承自仓库的访问权限)。更多信息,请参阅 配置软件包的访问控制和可见性。此行为不适用于 Apache Maven 软件包,详见 GitHub Packages 权限概览

  1. 在 GitHub 上,前往您想要解除链接的软件包的设置页面。

  2. 在软件包设置页面,您会看到“仓库来源”部分。如果此部分不存在,则该软件包当前未链接到任何仓库。

  3. 点击“仓库来源”部分右上角的垃圾桶图标。

可能会出现“仓库来源”部分存在但没有垃圾桶图标的情况。这是因为仓库来源已在打包代码(例如 package.json 文件、.gemspec 文件)中定义,但实际上并未在 GitHub 上链接到仓库。若要将软件包链接到仓库,需要按照上述章节的步骤操作。

  1. 在对话框中确认您要解除仓库与软件包的链接。

将软件包迁移到另一个仓库

如果您当前的某个软件包已链接到仓库,且希望改为链接到另一个仓库,可以先解除与当前仓库的链接,再链接到新的仓库。

  1. 按照下面的步骤解除链接,参见 在 GitHub 上解除仓库与软件包的链接
  2. 按照下面的步骤将软件包链接到新的仓库,参见 将仓库连接到组织范围的软件包(GitHub)将仓库连接到用户范围的软件包(GitHub)
© . This site is unofficial and not affiliated with GitHub, Inc.