SCM Links - Links created by Sealights do not point back to the correct SCM page

Problem

Sealights attempts to create links back to the customers SCM based  on the repo URL and the type and version of the SCM the customer uses.
In some cases this cannot be created properly as the repo URL is different to the actual URL used when browsing to the files through a browser.

  1. Wrong SCM type is sent to Sealights

  2. Wrong bitbucket on premise version - As Bitbucket has changed their link format between versions, if the wrong version is provided to Sealights the link can be incorrect

  3. Different DNS and port - The DNS and port used by the CI could be different to the one used when browsing to the files through a browser. This mainly happens when connecting in the CI through ssh rather than https

  4. CI uses a local repo and in turn sets the repo URL to be a local or temp path rather than the real repo

Solution

Sealights provides the ability to set what the correct values should be with 3 parameters. See various agent documentation on means to doing so

SCM Provider 

Sealights attempts to identify this on its own by looking at the DNS. If it cannot be identified automatically, this must be provided.
Possible values are: github, bitbucket, gitlab (no capitals)

SCM base URL

If not identified automatically you should provide the following based on your SCM:

SCM

URL format

SCM

URL format

bitbucket.org

https://bitbucket.org/{account}/{repo}/src

Bitbucket On-Prem

https://{dns}/projects/{project}/repos/{repo}/browse

Github On-Prem

https://{dns}/{account}/{repo}/blob

Gitlab On-Prem

https://{dns}/{account}/{optional:subgroup}/{repo}/blob

Gitlab CI

${CI_SERVER_URL}/${CI_PROJECT_PATH}/blob

 

SCM version

Should be set for any On-Premise SCM type.
If using a cloud SCM and the repo URL is not sent correctly, this should be set to "cloud"

If your on premise SCM version is often updated in order to comply with latest security patches for example, you can also provide a version retrieved dynamically as the sample command lines below

  • GitHub on-prem: githubVersion=`curl -sI https://github.mycompany.com/api/v3 | grep Version | awk '{print $2}' | tr -d '\r'`

  • Bitbucket: bitbucketVersion=`curl -s https://mybitbucket.mycompany.com/rest/api/1.0/application-properties | jq -r .version`

  • GitLab: gitlabVersion=`curl https://mygitlab.mycompany.com/api/v4/version | jq -r .version`