Atlassian Stash utiliza URL de repos para clonar / empujar / tirar en forma de
https://mystashserver/scm/myproject/myrepo.git
¿Cómo puedo transformar esta URL en la utilizada por la interfaz de usuario web de Stash en forma de
https://mystashserver/projects/myproject/repos/myrepo
La apertura de la primera URL en el browser se reenvía automáticamente a la última, pero no puede agregar parameters adicionales, por ejemplo, para seleccionar una twig específica.
Estoy buscando una forma de transformar las URL de primer tipo en las últimas, idealmente para utilizarlas en un script de Bash.
Lo siguiente funciona en un script de Bash, utilizando el soporte de expresiones regulares integrado de 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
La expresión regular divide la URL original en varias partes:
.git
En el ejemplo anterior, la variable newgiturl
ensamblar la URL, inyectando los projects
y la parte del repos
en las ubicaciones deseadas.