首页 > 其他分享 >GitLab 管理 NuGet 包

GitLab 管理 NuGet 包

时间:2024-05-15 09:18:45浏览次数:24  
标签:nuget 令牌 管理 -- 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/<your_project_id>/packages/nuget/index.json --api-key <write_package_registry的令牌密码>
    

    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 <read_package_registry的令牌用户名> --password <read_package_registry的令牌密码>
    

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

4 管理 NuGet 包源

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

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

    <packageSources>
      <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
      <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
      <add key="gitlab-software-group-projects" value="https://gitlab.example.com/api/v4/projects/<项目ID>/packages/nuget/index.json" />
    </packageSources>
    
  3. 出于安全考虑,NuGet 现要求对程序包进行包源映射,告知机器某个程序包应该访问哪个包源进行下载,避免不法分子利用同名的程序包链接到未知的地址。配置文件中编辑 packageSourceMapping 来进行包源映射设置。

    <packageSourceMapping>
      <packageSource key="nuget.org">
        <package pattern="*" />
      </packageSource>
      <packageSource key="gitlab-software-group-projects">
        <package pattern="A.*" />
        <package pattern="B.*" />
      </packageSource>
    </packageSourceMapping>
    

5 参考资料

 

2024-05-15 09:11:49【出处】:https://www.cnblogs.com/txrock/p/18179524

=======================================================================================

标签:nuget,令牌,管理,--,GitLab,NuGet,设置
From: https://www.cnblogs.com/mq0036/p/18192722

相关文章

  • ShowDoc:打造IT团队高效协作的文档与API管理神器
    介绍ShowDoc:一款适用于IT团队的知识文档与API管理工具ShowDoc是一款专为IT团队设计的知识文档和API管理工具,它允许用户通过Markdown语法轻松地创建和编辑美观的API文档、数据字典文档、技术文档,甚至在线Excel文档。ShowDoc支持多平台客户端,包括Windows、Mac、iOS和Android,为用......
  • Vue3 列表渲染以及key值的状态管理 的学习
    列表渲染使用v-for指令来进行一个数组的渲染,基于iteminitems其中item是迭代名,items是源数据的数组且迭代名称也可以自由定义,只需要与后面插值表达式的一致即可v-for也可以支持第二个参数进行位置的索引(item,index)initems还有一个小的注意点in也可以换成of一样的用......
  • 超简洁的todolist工具,电脑桌面高效计划管理软件
    对于上班族来说,在电脑上使用一款高效计划管理软件至关重要。这样的工具不仅能帮助我们清晰地规划和追踪工作任务,还能有效提高工作效率,减少遗漏和延误。例如,当我们面临多个项目并行时,通过管理软件可以一目了然地查看各项任务的进度和优先级,从而合理分配时间和精力。那么,哪款电脑桌......
  • 十分钟搭建自己的私有NuGet服务器-BaGet
    三分钟搭建自己的私有NuGet服务器-BaGet   目录前言开始搭建BaGet上传程序包在vs中使用其他最后前言NuGet是用于微软.NET(包括.NETCore)开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。通常使用NuGet都是......
  • 项目管理之八大绩效域-------笔记(一)
    绪论一、核心术语1.预期目标给干系人绩效域一个KPI(预期目标)来对其衡量其做的好不好,这个KPI就叫做预期目标.2.指标及检查方法要对目标是否做好进行评价,这个评价就是指标及检查方法3.绩效要点为了完成预期目标的三个KPI,应该做什么工作或者应该关注哪几个方面的活动......
  • 合合信息携手业界专家,解码数据资产管理方法与入表的关键路径
    随着财政部印发的《企业数据资源相关会计处理暂行规定》提出企业数据资产入表相关办法,《数据资产评估指导意见》中进一步规范数据资产评估行为,细化数据资产评估操作要求,对解决数据要素市场建设中的“数据赋值”难题提供了有效方案。数据资产管理与入表成为当前社会关注热点和数据......
  • 【django学习-19】基本流程与用户管理界面(原始方式)
    1.安装及创建项目1.1:安装django,pipinstalldjango1.2:创建项目:django-adminstartproject项目名称1.3:创建app:pythonmanage.pystartappapp名称1.4:使用pychram创建项目:1.4.1:注意点,pycharm在标准的基础上默认给咱们加了点东西1.4.2:创建了一个templates目录【删除】1.......
  • vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
    一、是什么权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配的资源而前端权限归根结底是请求的发起权,请求的发起可能有下面两种形式触发页面加载触发页面上的按钮点击触发总的来说,所有的请求发起都触发自前端路由或视图所以我们可以从这两方面入手......
  • ComfyUI安装ComfyUI-Manager管理器和翻译插件
    进到ComfyUI\custom_nodes目录克隆https://github.com/ltdrdata/ComfyUI-Manager源码到ComfyUI\custom_nodes下然后进入到ComfyUI-Manager,执行pipinstall-rrequirements.txt启动\重启ComfyUI安装翻译插件点击Manager按钮搜索AIGODLIKE-COMFYUI-TRANSLATION安装......
  • Markdown TMS-基于Markdown的本地测试管理系统
    MarkdownTMS简介我们通常习惯使用线的测试平台或者XMind、Excel在来管理手工测试用例。由Jetbrains公司推出的MarkdownTMS则提供了另一种管理手工测试用例的思路。相比于XMind、Excel来说,Markdown是纯文本文件,几乎不需要安装额外的软件进行查看和编辑。使用Markdown+Git即......