如何将Atlassian Stash repo URL转换为在浏览器中打开?

时间:2015-07-20 12:24:34

标签: git bash bitbucket-server

Atlassian Stash使用repo URL以

的形式进行克隆/推/拉
https://mystashserver/scm/myproject/myrepo.git

如何将此URL转换为Stash的Web UI以

形式使用的URL
https://mystashserver/projects/myproject/repos/myrepo

在浏览器中打开第一个URL会自动转发到后者,但您无法添加其他参数,例如用于选择特定分支。

我正在寻找一种方法将第一种网址转换为后者,最好是在Bash脚本中使用。

1 个答案:

答案 0 :(得分:1)

以下在Bash脚本中使用Bash的内置正则表达式支持:

giturl=https://mystashserver/scm/myproject/myrepo.git

re='(.*)/scm/(.*)/(.*)\.git'
if [[ $giturl =~ $re ]]; then
  newgiturl=${BASH_REMATCH[1]}/projects/${BASH_REMATCH[2]}/repos/${BASH_REMATCH[3]}
  echo $newgiturl
fi

正则表达式将原始URL拆分为几个部分:

  • (捕获组1):协议,主机名,可选的Web根上下文
  • “scm”:这似乎是Atlassian Stash的固定值
  • (捕获组2):项目名称
  • (Capture Group 3):实际存储库名称减去.git后缀

在上面的示例中,newgiturl变量然后重新组合网址,将projectsrepos部分注入所需位置。