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

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

При публикации пакета, ограниченного личная учетная запись или организацией, пакет по умолчанию не связан с репозиторием. При подключении пакета к репозиторию целевая страница пакета будет отображать сведения и ссылки из репозитория, такие как README. Вы также можете выбрать, чтобы пакет наследовал разрешения на доступ из связанного репозитория. Дополнительные сведения см. в разделе [Настройка управления доступом и видимости пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

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

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

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

   ![Снимок экрана: раскрывающееся меню в @octocatразделе "Изображение профиля". "Ваш профиль" очертается в темно-оранжевый цвет.](/assets/images/help/profile/profile-button-avatar-menu-global-nav-update.png)

3. На странице профиля в заголовке щелкните вкладку **"Пакеты" <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-package" aria-label="package" role="img"><path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path></svg> Packages** .

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

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

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

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

1. В GitHub перейдите на главную страницу вашей организации.
2. Под именем организации щелкните вкладку **"Пакет" aria-hidden="true" aria-label="package" %} "Package** ".

   ![@octo-orgСнимок экрана: страница профиля. Вкладка "Пакеты" выделена оранжевым контуром.](/assets/images/help/package-registry/org-tab-for-packages-with-overview-tab.png)
3. Найдите и выберите имя пакета, который требуется управлять.
4. В разделе версий пакета щелкните **Подключить репозиторий**.
5. Выберите репозиторий, чтобы связаться с пакетом, а затем нажмите кнопку **"Подключить репозиторий**".

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

> \[!NOTE] Container registry в настоящее время находится в Публичный предварительный просмотр для GitHub Enterprise Server и подлежит изменению.

Для использования GitHub Packages необходимо включить Container registry и изоляцию поддоменов. Дополнительные сведения см. в разделе [Работа с реестром контейнеров](/ru/enterprise-server@3.22/packages/working-with-a-github-packages-registry/working-with-the-container-registry).

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

   ```shell
   LABEL org.opencontainers.image.source=https://HOSTNAME/OWNER/REPO
   ```

   Например, если вы являетесь пользователем `octocat` и владельцем `my-repo`, а имя узла GitHub — `github.companyname.com` — это строка в Dockerfile:

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

   Дополнительные сведения см[](https://docs.docker.com/engine/reference/builder/#label). в официальной документации Docker и [предварительно определенных ключах](https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys) заметок в репозитории`opencontainers/image-spec`.

2. Соберите образ контейнера. В этом примере создается образ из файла Dockerfile в текущем каталоге и присваивается имя образа `hello_docker`.

   ```shell
   docker build -t hello_docker .
   ```

3. При необходимости просмотрите сведения о созданном образе Docker.

   ```shell
   $ 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.

   ```shell
   docker tag IMAGE_NAME containers. HOSTNAME/NAMESPACE/NEW_IMAGE_NAME:TAG
   ```

   Замените `NAMESPACE` именем личная учетная запись или организации, для которой требуется область действия пакета.

   Например:

   ```shell
   docker tag 38f737a91f39 containers.github.companyname.com/octocat/hello_docker:latest
   ```

5. Если вы еще не сделали этого, выполните проверку подлинности, чтобы войти в Container registry. Дополнительные сведения см. в разделе [Работа с реестром контейнеров](/ru/enterprise-server@3.22/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry).

   ```shell
   $ echo $CR_PAT | docker login containers. HOSTNAME -u USERNAME --password-stdin
   > Login Succeeded
   ```

6. Отправка образа контейнера в Container registry

   ```shell
   docker push containers. HOSTNAME/NAMESPACE/IMAGE-NAME:TAG
   ```

   Например:

   ```shell
   docker push containers.github.companyname.com/octocat/hello_docker:latest
   ```

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

> \[!NOTE]
> Отмена связывания пакета из репозитория приведет к удалению сведений о репозитории с целевой страницы пакета и может повлиять на шаблон доступа в зависимости от того, наследует ли пакет разрешения на доступ из репозитория. Дополнительные сведения см. в разделе [Настройка управления доступом и видимости пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#about-inheritance-of-access-permissions). Это поведение не применяется к пакетам Apache Maven, как описано в [Сведения о разрешениях для пакетов GitHub](/ru/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).

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

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

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

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

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

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

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

1. Выполните действия, чтобы отменить связь с ним, см [. статью "Отмена связывания репозитория из пакета" на GitHub](/ru/enterprise-server@3.22/packages/learn-github-packages/connecting-a-repository-to-a-package#unlinking-a-repository-from-a-package-on-github).
2. Выполните действия, чтобы связать пакет с новым репозиторием, см [. статью "Подключение репозитория к пакету с областью организации" на GitHub](/ru/enterprise-server@3.22/packages/learn-github-packages/connecting-a-repository-to-a-package#connecting-a-repository-to-an-organization-scoped-package-on-github) или [подключение репозитория к пакету с областью пользователя на GitHub](/ru/enterprise-server@3.22/packages/learn-github-packages/connecting-a-repository-to-a-package#connecting-a-repository-to-a-user-scoped-package-on-github).