前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gitlab私有存储库支持SourceLink 调试之使用proxy方式

Gitlab私有存储库支持SourceLink 调试之使用proxy方式

作者头像
旺财的城堡
发布2022-09-27 08:17:20
7170
发布2022-09-27 08:17:20
举报
文章被收录于专栏:calvin

前情概要

让你发布的nuget包支持源代码调试#为gitlab的私有源代码项目提供支持 小节中有介绍到如何让gitlab的私有存储库支持SourceLink. 其中有一个方法是说在vs中打开webbrower登录, 利用已登录session支持. 但是在时间车轮经过一段不短的距离后. vs2022 中已经没有web brower了, 同时gitlab也不再支持IE. 所以利用共享Session方式行不通了. 同时GCM+SourceLink任然不支持, 最后只能选择使用Proxy的方式来实现一把.

方案

代码语言:javascript
复制
VS --> SourceLink --> gitlab.com(127.0.0.1,gitlabproxy) --> gitlab.com(使用 用户token + gitlab api 下载源文件)

环境配置

修改hosts文件, 将gitlab.com 指向 127.0.0.1

代码语言:javascript
复制
# C:\Windows\System32\drivers\etc\hosts
127.0.0.1 gitlab.com

启动一个WebProxy. 让gitlabproxy可以访问真正的gitlab.com

代码语言:javascript
复制
用什么都可以, 反正就是一个Proxy, 例如我的http代理在 http://127.0.0.1:10809.

当然, 如果不选择使用webproxy的方式, 也可以配置gitlabproxy的gitlabHost, 将它改成一个真实的gitlab.com服务器ip, 然后配置requet.header.host=gitlab.com

准备 gitlab.com(127.0.0.1,gitlabproxy) 代理程序

https://gitlab.com/slcon/pub/repo/gitlabproxy repo clone 下来. 然后做一点修改

代码语言:javascript
复制
# Microsoft.SourceLink.GitLab.1.0.0 打包的生成的PATH中已经没有 "/-/" 部分了. 所以删除个.
new Regex(@"^\/(?<project>.+?)\/-\/raw\/(?<commit>[\da-f].+?)\/(?<filepath>.+)$");
# ==>
new Regex(@"^\/(?<project>.+?)\/raw\/(?<commit>[\da-f].+?)\/(?<filepath>.+)$");

# 使用代理, 访问真正的gitlab.com
response  = WebRequest.Create(remoteUrl).GetResponse() as HttpWebResponse;
# ==>
var request = WebRequest.Create(remoteUrl);
request.Proxy = new WebProxy("http://127.0.0.1:10809");
response = request.GetResponse() as HttpWebResponse;

将此修改的gitlabproxy程序部署到本地iis, 并绑定域名 https://gitlab.com:443

修改 gitlabproxy 的 web.config 文件

到https://gitlab.com/-/profile/personal_access_tokens 创建一个个人token, 然后添加到appSettings section 中.

代码语言:javascript
复制
<appSettings>
  <add key="gitlabHost"        value="https://gitlab.com" />
  <add key="{your gitlab group path}" value="glpat-****************" /> 
  <add key="{your gitlab project path}" value="glpat-****************" /> 
</appSettings>

完成

不出意外的话, 现在在vs里面F11调试就可以进入源代码了.

Links

https://gitlab.com/slcon/pub/repo/gitlabproxy https://github.com/dotnet/sourcelink/issues/281

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情概要
  • 方案
    • 环境配置
      • 启动一个WebProxy. 让gitlabproxy可以访问真正的gitlab.com
        • 准备 gitlab.com(127.0.0.1,gitlabproxy) 代理程序
          • 修改 gitlabproxy 的 web.config 文件
        • 完成
          • Links
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档