• GitLab 管理 NuGet 包


    1 概览

    在服务器上构建项目时,需要引用 nuget.org 之外的包,如公司内部开发的、第三方未发布到 nuget.org 上的。怎么办?

    GitLab 提供了 Package Registry 来解决这个问题。

    2 上传 NuGet 包到指定项目中

    1. 新建或使用一个已有项目,作为存放 NuGet 包的项目,为其他需要引用对应 NuGet 包的项目提供 Nuget 源和源上所有包的依赖。

    2. 在该项目的【仓库】设置中,设置【部署令牌(Deploy Token)】

    3. 首先设置一个权限为【write_package_registry】的令牌,允许对软件包库进行读取、写入和删除访问。定义一个合适的名称和到期日期,到期日期不设置则默认永不过期。用户名选填。记录服务器为令牌生成的密码,该密码只会在设置时出现,之后无法再次查看。用于上传包。

    4. 再设置一个权限为【read_package_registry】的令牌,允许对软件包仓库进行只读访问。定义一个合适的名称和到期日期,到期日期不设置则默认永不过期。必须填写一个合适的用户名,如 DEPLOY_READ。记录服务器为令牌生成的密码,该密码只会在设置时出现,之后无法再次查看。用于添加源。

    5. 定位到所需上传的 Nuget 包,如在本地磁盘目录下,执行命令:

      dotnet nuget push <待上传的Nuget包> --source https://gitlab.example.com/api/v4/projects//packages/nuget/index.json --api-key 
      

      api-key 还可以是个人访问令牌或者流水线作业令牌,该指令需要 GitLab v16.1 以上的支持

    3 添加 GitLab 上的 NuGet 源

    1. 构建前,为项目所在构建环境内添加新的 NuGet 源,执行命令:

      dotnet nuget add source "https://gitlab.example.com/api/v4/projects/<项目ID>/packages/nuget/index.json" --name <源名称> --username  --password 
      

      源名称可以是任意合适的名称,如 gitlab-software-group-projects

    4 管理 NuGet 包源

    1. %APPDATA%/NuGet/ 中找到 NuGet.Config,进行编辑。也可以在如 Visual Studio 这样的 IDE 中找到对应的【NuGet 包管理器设置】,从而在 UI 界面选项中对配置文件进行修改。

    2. 使用 CLI 添加过 NuGet 源,可以在配置文件中 packageSources 查看到。

      
        
        
        
      
      
    3. 出于安全考虑,NuGet 现要求对程序包进行包源映射,告知机器某个程序包应该访问哪个包源进行下载,避免不法分子利用同名的程序包链接到未知的地址。配置文件中编辑 packageSourceMapping 来进行包源映射设置。

      
        
          
        
        
          
          
        
      
      

    5 参考资料

  • 相关阅读:
    LINUX的XEN和KVM到底区别在什么地方?
    第3部分 原理篇2去中心化数字身份标识符(DID)(2)
    java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
    面试题补充
    【 java 常用类】StringBuffer 源码分析以及 StringBuffer 底层的数组扩容机制
    I2C总线 | I2C总线介绍
    Yolov5的类激活图
    Python与数据分析--Matplotlib-2
    Doris 应用实践之高并发 & 大吞吐,如何选择?
    关于ETL的两种架构(ETL架构和ELT架构)
  • 原文地址:https://www.cnblogs.com/txrock/p/18179524