# リポジトリのパッケージへの接続

リポジトリを GitHub のパッケージに接続できます。

個人アカウントまたは Organization にスコープ指定されたパッケージを公開すると、既定では、このパッケージはリポジトリにリンクされません。 パッケージをリポジトリに接続すると、パッケージのランディング ページには、リポジトリから README などの情報やリンクが表示されるようになります。 パッケージのアクセス許可をリンク先のリポジトリから継承させることもできます。 詳しくは、「[パッケージのアクセス制御と可視性の設定](/ja/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)」をご覧ください。

## GitHub でリポジトリをユーザーにスコープ指定されたパッケージに接続する

1. GitHub で、個人アカウントのメイン ページに移動します。

2. GitHub の右上隅にあるプロフィール画像をクリックしてから、**\[Your profile]** をクリックします。

   ![@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 でリポジトリを Organization にスコープ指定されたパッケージに接続する

1. GitHubで、Organizationのメインページにアクセスしてください。
2. Organization 名の下にある **\[<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]** タブをクリックします。

   ![@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 と Subdomain Isolation の両方を有効にする必要があります。 詳しくは、「[コンテナレジストリの利用](/ja/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
   ```

   詳細については、Docker の公式ドキュメントの「[LABEL](https://docs.docker.com/engine/reference/builder/#label)」および `opencontainers/image-spec` リポジトリの「[事前定義された注釈キー](https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys)」を参照してください。

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` を、パッケージのスコープ指定先にしたい個人アカウントまたは Organization の名前に置き換えます。

次に例を示します。

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

1. まだContainer registryで認証を行っていない場合は、認証を行ってください。 詳しくは、「[コンテナレジストリの利用](/ja/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
   ```

2. コンテナイメージをContainer registryにプッシュしてください。

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

   次に例を示します。

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

## GitHub のパッケージからリポジトリのリンクを解除する

> \[!NOTE]
> リポジトリからパッケージのリンクを解除すると、パッケージのランディング ページからリポジトリ情報が削除され、パッケージがリポジトリからアクセス許可を継承するかどうかに応じて、アクセス パターンに影響する可能性があります。 詳しくは、「[パッケージのアクセス制御と可視性の設定](/ja/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#about-inheritance-of-access-permissions)」をご覧ください。 「[GitHub Packagesの権限について](/ja/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages)」で説明されているように、このビヘイビアーは Apache Maven パッケージには適用されません。

1. GitHub で、リンクを解除するパッケージの設定ページに移動します。

2. パッケージの設定ページに、リポジトリのソース セクションが表示されます。 このセクションが存在しない場合、パッケージは現在リポジトリにリンクされていません。

3. リポジトリのソース セクションの右上隅にあるごみ箱アイコンをクリックします。

> リポジトリのソース セクションが存在しても、ごみ箱アイコンが存在しない場合があります。 これは、リポジトリのソースがパッケージ化されたコード (`package.json` ファイル、`.gemspec` ファイル) の一部として定義されているためですが、実際には、GitHub 上のリポジトリにリンクされていません。 パッケージをリポジトリにリンクするには、上記のセクションの手順に従う必要があります。

1. ダイアログで、パッケージからリポジトリのリンクを解除することを確認します。

## パッケージを別のリポジトリに移行する

現在、リポジトリにリンクされているパッケージがあり、それを別のリポジトリにリンクする場合は、現在のリポジトリからパッケージのリンクを解除し、新しいリポジトリにリンクすることでこれを行うことができます。

1. 手順に従って、リンクを解除します。「[GitHub
   のパッケージからリポジトリのリンクを解除する](/ja/enterprise-server@3.22/packages/learn-github-packages/connecting-a-repository-to-a-package#unlinking-a-repository-from-a-package-on-github)」を参照してください。
2. 手順に従ってパッケージを新しいリポジトリにリンクします。「[GitHub
   でリポジトリを organization にスコープ指定されたパッケージに接続する](/ja/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
   でリポジトリをユーザー スコープ指定されたパッケージに接続する](/ja/enterprise-server@3.22/packages/learn-github-packages/connecting-a-repository-to-a-package#connecting-a-repository-to-a-user-scoped-package-on-github)」を参照してください。