GitLab NuGetリポジトリ
GitLab Premium12.8で導入されました。
GitLab NuGetリポジトリがあれば、すべてのプロジェクトはNuGetパッケージを保存する独自のスペースを持つことができます。
GitLab NuGetリポジトリは次のように動作します:
開発者の環境設定
NuGet CLI 5.2以降が必要です。 それ以前のバージョンはGitLab NuGetリポジトリに対してテストされていないため、動作しない可能性があります。Visual Studioをお持ちの場合、NuGet CLIはすでにインストールされていると思います。
または、NuGet CLIをインストールする.NET SDK 3.0以降を使用することもできます。
NuGetCLIが正しくインストールされているかどうかは、次のようにして確認できます:
nuget help
のようなものが表示されるはずです:
NuGet Version: 5.2.0.6090
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.
Available commands:
[output truncated]
MacOSサポート
macOSの場合は、Monoを使用してNuGet CLIを実行することもできます。 Homebrewユーザーの場合は、brew install mono
を実行してMonoをインストールします。その後、NuGet CLIのページからWindows C#バイナリnuget.exe
をダウンロードして実行します:
mono nuget.exe
NuGetリポジトリの有効化
NuGet リポジトリを有効にすると、デフォルトですべての新規プロジェクトで利用できるようになります。 既存のプロジェクトで有効にする場合、または無効にする場合:
- プロジェクトの[設定]>[一般]>[権限]に移動します。
- パッケージ機能を検索し、有効または無効にします。
- 変更を有効にするには、[変更を保存]をクリックします。
左サイドバーに「パッケージ&レジストリ」セクションが表示されます。
GitLab NuGetリポジトリをNuGetにソースとして追加します。
以下のものが必要です:
- GitLabでのユーザー名。
- 個人アクセストークンまたはデプロイトークン。 リポジトリ認証用:
- ソースにふさわしい名前。
- プロジェクトIDは、プロジェクトのホームページに記載されています。
でNuGetに新しいソースを追加できるようになりました:
NuGet CLIによるNuGetリポジトリソースの追加
GitLab NuGetリポジトリをソースとして追加するには、nuget
:
nuget source Add -Name <source_name> -Source "https://gitlab-instance.example.com/api/v4/projects/<your_project_id>/packages/nuget/index.json" -UserName <gitlab_username or deploy_token_username> -Password <gitlab_personal_access_token or deploy_token>
どこで
-
<source_name>
は希望するソース名です。
使用例:
nuget source Add -Name "GitLab" -Source "https://gitlab.example/api/v4/projects/10/packages/nuget/index.json" -UserName carol -Password 12345678asdf
Visual StudioでのNuGetリポジトリソースの追加
- Visual Studioを開きます。
- FILE > OPTIONS(Windows)またはVisual Studio > Preferences(MacOS)を開きます。
- NuGetセクションで、Sourcesを開きます。 すべてのNuGetソースのリストが表示されます。
- 追加をクリックします。
- を記入してください:
- Name: ソースの希望する名前
-
場所は?
https://gitlab.com/api/v4/projects/<your_project_id>/packages/nuget/index.json
-
<your_project_id>
をプロジェクトIDに置き換えてください。 - GitLab をセルフマネジメントでインストールしている場合は、
gitlab.com
をドメイン名に置き換えてください。
-
- ユーザー名: GitLabユーザー名またはデプロイトークンユーザー名
- パスワード:個人アクセストークンまたはデプロイトークン
-
保存をクリックします。
警告が表示された場合は、場所、ユーザー名、パスワードが正しいことを確認してください。
.NET CLIを使用したNuGetリポジトリソースの追加
.NET のソースとして GitLab NuGet リポジトリを追加するには、プロジェクトのルートにnuget.config
という名前のファイルを作成し、次の内容を記述します:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="gitlab" value="https://gitlab-instance.example.com/api/v4/projects/<your_project_id>/packages/nuget/index.json" />
</packageSources>
<packageSourceCredentials>
<gitlab>
<add key="Username" value="<gitlab_username or deploy_token_username>" />
<add key="ClearTextPassword" value="<gitlab_personal_access_token or deploy_token>" />
</gitlab>
</packageSourceCredentials>
</configuration>
パッケージのアップロード
パッケージをアップロードする際は、以下の点に注意してください:
- 最大許容サイズは50メガバイトです。
- 同じパッケージを同じバージョンで複数回アップロードした場合、連続したアップロードはそれぞれ別のファイルとして保存されます。 パッケージをインストールするとき、GitLabは最新のファイルを提供します。
- GitLabにパッケージをアップロードしても、すぐにプロジェクトのパッケージUIに表示されるわけではありません。 パッケージの処理には最大10分かかることがあります。
NuGet CLIによるパッケージのアップロード
このセクションでは、プロジェクトが適切にビルドされ、NuGet CLIでNuGetパッケージが作成済みであることを前提とします。 次のコマンドを使用してパッケージをアップロードします:
nuget push <package_file> -Source <source_name>
どこで
-
<package_file>
はパッケージのファイル名で、.nupkg
で終わります。 -
<source_name>
は、セットアップ時に使用されるソース名です。
.NET CLIによるパッケージのアップロード
このセクションでは、プロジェクトが適切にビルドされ、.NETCLIでNuGetパッケージを作成済みであることを前提とします。 次のコマンドを使用してパッケージをアップロードします:
dotnet nuget push <package_file> --source <source_name>
どこで
-
<package_file>
はパッケージのファイル名で、.nupkg
で終わります。 -
<source_name>
は、セットアップ時に使用されるソース名です。
使用例:
dotnet nuget push MyPackage.1.0.0.nupkg --source gitlab
パッケージのインストール
NuGet CLIによるパッケージのインストール
nuget
はnuget.org
最初に nuget.org
公式ソースをチェックしますnuget.org
。 nuget.org
GitLabnuget.org
NuGet リポジトリに nuget.org
、nuget.org
のパッケージと同じ名前のパッケージがある場合 nuget.org
、ソース名を指定しなければ、間違ったパッケージがインストールされます。以下のコマンドを使用して、最新バージョンのパッケージをインストールしてください:
nuget install <package_id> -OutputDirectory <output_directory> \
-Version <package_version> \
-Source <source_name>
どこで
-
<package_id>
はパッケージIDです。 -
<output_directory>
はパッケージがインストールされる出力ディレクトリです。 -
<package_version>
(オプション)はパッケージのバージョンです。 -
<source_name>
(オプション)はソース名です。
.NET CLIによるパッケージのインストール
dotnet
がソースをチェックする順序を確認する必要があります。これはnuget.config
ファイルで定義されています。以下のコマンドを使用して、最新バージョンのパッケージをインストールしてください:
dotnet add package <package_id> \
-v <package_version>
どこで
-
<package_id>
はパッケージIDです。 -
<package_version>
(オプション)はパッケージのバージョンです。