Skip to main content

Подключение репозитория к пакету

Вы можете подключить репозиторий к пакету на GitHub.

Кто может использовать эту функцию?

Enterprise Managed Users can publish to an organization's namespace. These users cannot publish packages to their account's namespace because there is no personal storage allocation. For additional information on Enterprise Managed Users, see About Enterprise Managed Users.

При публикации пакета, ограниченного личная учетная запись или организацией, пакет по умолчанию не связан с репозиторием. При подключении пакета к репозиторию целевая страница пакета будет отображать сведения и ссылки из репозитория, такие как README. Вы также можете выбрать, чтобы пакет наследовал разрешения на доступ из связанного репозитория. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

Подключение репозитория к пакету с областью действия пользователя на GitHub

  1. В GitHub перейдите на главную страницу личной учетной записи.

  2. В правом верхнем углу GitHubщелкните рисунок профиля, а затем щелкните профиль.

    Снимок экрана: раскрывающееся меню в @octocatразделе "Изображение профиля". "Ваш профиль" очертается в темно-оранжевый цвет.

  3. На странице профиля в заголовке щелкните вкладку "Пакеты" Packages .

  4. Найдите и выберите имя пакета, который требуется управлять.

  5. В разделе версий пакета щелкните Подключить репозиторий.

  6. Выберите репозиторий, чтобы связаться с пакетом, а затем нажмите кнопку "Подключить репозиторий".

Подключение репозитория к пакету в области организации на GitHub

  1. В GitHub перейдите на главную страницу вашей организации.

  2. Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

    @octo-orgСнимок экрана: страница профиля. Вкладка "Пакеты" выделена оранжевым контуром.

  3. Найдите и выберите имя пакета, который требуется управлять.

  4. В разделе версий пакета щелкните Подключить репозиторий.

  5. Выберите репозиторий, чтобы связаться с пакетом, а затем нажмите кнопку "Подключить репозиторий".

Подключение репозитория к образу контейнера с помощью командной строки

Примечание.

При публикации пакета, связанного с репозиторием, пакет автоматически наследует разрешения доступа связанного репозитория, а рабочие процессы GitHub Actions в связанном репозитории автоматически получают доступ к пакету, если ваша организация не отключила автоматическое наследование разрешений доступа. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

  1. В Dockerfile добавьте эту строку, заменив OWNER и REPO на свои сведения:

    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 и предварительно определенных ключах заметок в репозитории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. Если вы еще не сделали этого, выполните проверку подлинности, чтобы войти в Container registry. Дополнительные сведения см. в разделе Работа с реестром контейнеров.

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded 
  6. Отправка образа контейнера в Container registry

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

    Например:

    docker push ghcr.io/octocat/hello_docker:latest 

Отмена связывания репозитория из пакета на GitHub

Примечание.

Отмена связывания пакета из репозитория приведет к удалению сведений о репозитории с целевой страницы пакета и может повлиять на шаблон доступа в зависимости от того, наследует ли пакет разрешения на доступ из репозитория. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета. Это поведение не применяется к пакетам Apache Maven, как описано в Сведения о разрешениях для пакетов GitHub.

  1. На сайте GitHub перейдите на страницу параметров пакета, которую вы хотите отменить связь.

  2. На странице параметров пакета вы увидите раздел источника репозитория. Если этот раздел отсутствует, пакет в настоящее время не связан с репозиторием.

  3. Щелкните значок корзины в правом верхнем углу раздела источника репозитория.

Возможно, что исходный раздел репозитория существует, но значок корзины отсутствует. Это связано с тем, что источник репозитория определен как часть упаковаемого кода, т. е. package.json файла, .gemspec однако он не связан с репозиторием на GitHub. Чтобы связать пакет с репозиторием, необходимо выполнить действия, описанные в приведенном выше разделе.

  1. Убедитесь, что вы хотите отменить связь репозитория с пакетом с диалогом.

Перенос пакета в другой репозиторий

Если у вас есть пакет, связанный с репозиторием, и вы хотите связать его с другим репозиторием, это можно сделать, развязав пакет из текущего репозитория и связав его с новым репозиторием.

  1. Выполните действия, чтобы отменить связь с ним, см . статью "Отмена связывания репозитория из пакета" на GitHub.
  2. Выполните действия, чтобы связать пакет с новым репозиторием, см . статью "Подключение репозитория к пакету с областью организации" на GitHub или подключение репозитория к пакету с областью пользователя на GitHub.