GitLab NuGet Repository

GitLab NuGet Repository

in GitLab Premium 12.8.

使用 GitLab NuGet 存储库,每个项目都可以拥有自己的空间来存储 NuGet 软件包.

GitLab NuGet 存储库可用于:

您将需要NuGet CLI 5.2 或更高版本 . 早期版本尚未针对 GitLab NuGet 存储库进行测试,因此可能无法正常工作. 如果您具有 ,则可能已经安装了 NuGet CLI.

或者,您可以使用.NET SDK 3.0 或更高版本 ,该版本将安装 NuGet CLI.

您可以通过以下方法确认已正确安装 :

您应该看到类似以下内容:

  1. usage: NuGet <command> [args] [options]
  2. Type 'NuGet help <command>' for help on a specific command.
  3. Available commands:
  4. [output truncated]

对于 macOS,您还可以使用Mono运行 NuGet CLI. 对于 Homebrew 用户,请运行brew install mono来安装 Mono. 然后,您应该能够从下载 Windows C#二进制文件nuget.exe并运行:

  1. mono nuget.exe

注意:仅当您的 GitLab 管理员启用了对 Package Registry 的支持时,此选项才可用.

启用 NuGet 存储库后,默认情况下它将可用于所有新项目. 要为现有项目启用它,或者要禁用它:

  1. 导航到项目的“设置”>”常规”>”可见性,项目功能,权限” .
  2. 找到”软件包”功能并启用或禁用它.
  3. 单击保存更改以使更改生效.

您将需要以下内容:

  • 您的 GitLab 用户名.
  • 个人访问令牌或部署令牌. 对于存储库身份验证:
    • 您可以将范围设置为api来生成 .
    • 您可以生成令牌部署与范围设置为read_package_registrywrite_package_registry ,或两者兼而有之.
  • 您的来源的合适名称.
  • 您的项目 ID,可以在项目的主页上找到.

您现在可以使用以下方法向 NuGet 添加新的源:

Add NuGet Repository source with NuGet CLI

要将 GitLab NuGet 存储库添加为带有nuget的源:

Where:

  • <source_name>是所需的源名称.

例如:

  1. nuget source Add -Name "GitLab" -Source "https://gitlab.example/api/v4/projects/10/packages/nuget/index.json" -UserName carol -Password 12345678asdf
  1. Open .
  2. 打开” 文件”>”选项” (Windows)或” Visual Studio”>”首选项” (Mac OS).
  3. NuGet部分中,打开Sources . 您将看到所有 NuGet 来源的列表.
  4. Click Add.
  5. 填写以下字段:

    • 名称 :源的期望名称
    • 位置https://gitlab.com/api/v4/projects/<your_project_id>/packages/nuget/index.json : https://gitlab.com/api/v4/projects/<your_project_id>/packages/nuget/index.json
      • <your_project_id>替换为您的项目 ID.
      • 如果您具有自行管理的 GitLab 安装, 使用您的域名替换gitlab.com .
    • 密码 :您的个人访问令牌或部署令牌

  6. Click Save.

如有任何警告,请确保LocationUsernamePassword正确.

Add NuGet Repository source with .NET CLI

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <configuration>
  3. <packageSources>
  4. <clear />
  5. <add key="gitlab" value="https://gitlab-instance.example.com/api/v4/projects/<your_project_id>/packages/nuget/index.json" />
  6. </packageSources>
  7. <packageSourceCredentials>
  8. <gitlab>
  9. <add key="Username" value="<gitlab_username or deploy_token_username>" />
  10. <add key="ClearTextPassword" value="<gitlab_personal_access_token or deploy_token>" />
  11. </gitlab>
  12. </packageSourceCredentials>
  13. </configuration>

上载套件时,请注意:

  • 允许的最大大小为 50 MB.
  • 如果您多次上传具有相同版本的相同程序包,则每次连续上传都将保存为单独的文件. 安装软件包时,GitLab 将提供最新文件.
  • 将软件包上传到 GitLab 时,它们不会立即显示在项目的软件包 UI 中. 处理包裹最多可能需要 10 分钟.

本部分假定您的项目已正确构建,并且已经 . 使用以下命令上传软件包:

Where:

Upload packages with .NET CLI

本节假定您的项目已正确构建,并且已经 . 使用以下命令上传软件包:

  1. dotnet nuget push <package_file> --source <source_name>

Where:

例如:

  1. dotnet nuget push MyPackage.1.0.0.nupkg --source gitlab

警告:默认情况下, nuget检查的官方消息nuget.org第一. 如果您在 GitLab NuGet 存储库中拥有与nuget.org的软件包同名的软件包, nuget.org必须指定源名称,否则将安装错误的软件包.

使用以下命令安装最新版本的软件包:

Where:

  • <package_id>是软件包 ID.
  • <output_directory>是将在其中安装软件包的输出目录.
  • <package_version> (可选)是软件包版本.
  • <source_name> (可选)是源名称.

Install a package with .NET CLI

Warning: If you have a package in the GitLab NuGet Repository with the same name as a package at a different source, you should verify the order in which dotnet checks sources during install. This is defined in the nuget.config file.

  1. dotnet add package <package_id> \
  2. -v <package_version>

Where:

  • (可选)是软件包版本.