http - 如何确保 repo 的 SSH 和 HTTPS-url 引用相同的 git 存储库
问题描述
我们的平台支持创建应用程序并将它们连接到 Git 存储库以管理它们。我们确实支持 GitHub、Azure、Bitbucket 等。假设我们有一个使用 HTTPS 链接到 GitHub 存储库的应用程序。我们希望为用户提供随时切换到 SSH 身份验证的功能,这需要更改 URL。这可能意味着用户可能会错误地输入不同存储库的 URL 并链接到它。我们如何防止这种情况?有没有办法找出先前 url 指向的存储库和更改后的 url 是相同的,而与使用的 Git 存储库管理系统无关?
解决方案
不要让用户指定新的 URL:修改现有的 URL。
考虑一个虚构的 Github URL:
https://github.com/jdoe/project.git
要将其替换为 SSH URL,只需将其替换https://github.com/
为git@github.com:
.
类似但不同的是,需要为每个受支持的 Git 提供程序编码映射。例如,在 Azure 上看起来只有用户名U
和项目名P
很重要;它们可以从一种类型的 URL 中提取并用于构造另一种类型的 URL。
- HTTP:http://@dev.azure.com/<USER>/<PROJECT>/_git/<PROJECT>
- SSH:git@ssh.dev.azure.com:v3/<USER>/<PROJECT>/<PROJECT>
无论提供者如何,用户只需提供一次URL ;您将在幕后处理从一种方案到另一种方案的转换。
推荐阅读
- c - AVR ATmega328p 和 MCP3201 问题
- lisp - 输入数字的平均值
- python-3.x - RFID (MFRC522) 扫描仪等待读取或写入 Raspberry PI
- python - 如何将链接保存在 .txt 文件中?
- rest - ASP.NET 核心 Web API
- docker - 如何将 jenkins 凭据传递给 docker build 命令?
- spring-boot - 仅在 8080 上运行的 Spring Boot docker?
- node.js - 如何在谷歌云应用引擎中修复“找不到模块'dotenv'”?
- python - OpenCV:将“模糊最大值”减少为单点
- excel - 在 VBA excel 中的 10599 行之后无法创建超链接,即使右键单击“链接”也不起作用