При публикации пакета, ограниченного личная учетная запись или организацией, пакет по умолчанию не связан с репозиторием. При подключении пакета к репозиторию целевая страница пакета будет отображать сведения и ссылки из репозитория, такие как README. Вы также можете выбрать, чтобы пакет наследовал разрешения на доступ из связанного репозитория. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Подключение репозитория к пакету с областью действия пользователя на GitHub
-
В GitHub перейдите на главную страницу личной учетной записи.
-
В правом верхнем углу GitHubщелкните рисунок профиля, а затем щелкните профиль.
-
На странице профиля в заголовке щелкните вкладку "Пакеты" Packages .
-
Найдите и выберите имя пакета, который требуется управлять.
-
В разделе версий пакета щелкните Подключить репозиторий.
-
Выберите репозиторий, чтобы связаться с пакетом, а затем нажмите кнопку "Подключить репозиторий".
Подключение репозитория к пакету в области организации на GitHub
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".
-
Найдите и выберите имя пакета, который требуется управлять.
-
В разделе версий пакета щелкните Подключить репозиторий.
-
Выберите репозиторий, чтобы связаться с пакетом, а затем нажмите кнопку "Подключить репозиторий".
Подключение репозитория к образу контейнера с помощью командной строки
Примечание.
При публикации пакета, связанного с репозиторием, пакет автоматически наследует разрешения доступа связанного репозитория, а рабочие процессы GitHub Actions в связанном репозитории автоматически получают доступ к пакету, если ваша организация не отключила автоматическое наследование разрешений доступа. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
-
В 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
. -
Соберите образ контейнера. В этом примере создается образ из файла Dockerfile в текущем каталоге и присваивается имя образа
hello_docker
.docker build -t hello_docker .
-
При необходимости просмотрите сведения о созданном образе 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
-
Назначьте имя и назначение размещения для образа Docker.
docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
Замените
NAMESPACE
именем личная учетная запись или организации, для которой требуется область действия пакета.Например:
docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
-
Если вы еще не сделали этого, выполните проверку подлинности, чтобы войти в Container registry. Дополнительные сведения см. в разделе Работа с реестром контейнеров.
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
-
Отправка образа контейнера в Container registry
docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
Например:
docker push ghcr.io/octocat/hello_docker:latest
Отмена связывания репозитория из пакета на GitHub
Примечание.
Отмена связывания пакета из репозитория приведет к удалению сведений о репозитории с целевой страницы пакета и может повлиять на шаблон доступа в зависимости от того, наследует ли пакет разрешения на доступ из репозитория. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета. Это поведение не применяется к пакетам Apache Maven, как описано в Сведения о разрешениях для пакетов GitHub.
-
На сайте GitHub перейдите на страницу параметров пакета, которую вы хотите отменить связь.
-
На странице параметров пакета вы увидите раздел источника репозитория. Если этот раздел отсутствует, пакет в настоящее время не связан с репозиторием.
-
Щелкните значок корзины в правом верхнем углу раздела источника репозитория.
Возможно, что исходный раздел репозитория существует, но значок корзины отсутствует. Это связано с тем, что источник репозитория определен как часть упаковаемого кода, т. е.
package.json
файла,.gemspec
однако он не связан с репозиторием на GitHub. Чтобы связать пакет с репозиторием, необходимо выполнить действия, описанные в приведенном выше разделе.
- Убедитесь, что вы хотите отменить связь репозитория с пакетом с диалогом.
Перенос пакета в другой репозиторий
Если у вас есть пакет, связанный с репозиторием, и вы хотите связать его с другим репозиторием, это можно сделать, развязав пакет из текущего репозитория и связав его с новым репозиторием.
- Выполните действия, чтобы отменить связь с ним, см . статью "Отмена связывания репозитория из пакета" на GitHub.
- Выполните действия, чтобы связать пакет с новым репозиторием, см . статью "Подключение репозитория к пакету с областью организации" на GitHub или подключение репозитория к пакету с областью пользователя на GitHub.