Docs feedback - feature proposal: Custom Issue Tracker Service enhancement

Enhancement to the feature

Nowadays when using the Custom Issue Tracker Service, a link is generated but it has some limitations:

  • the link doesn't open in a new tab/window (adding target=_blank should do the trick)
  • the format is restricted to ANYTHING-<ID>

Intended users

Developers, managers

Further details

Having a way to generate a link to an external bug tracker is very useful but it opens the link inside the gitlab window which is not very practical (unless using ctrl-clic on the link). The prefix is too strict, having it configurable will allow to do more powerful things.

Proposal

Generate a link that opens in a new window/tab instead of replacing the current page. Allow more powerful prefix configuration like having a regular expression and more than one prefix, prefix can be linked to different urls.

examples:

with proper configuration users can put in the commit messages, merge request descriptions, ...etc links to external trackers like:

Issue 23

Project 18

and in the configuration an entry will be composed of a matching expression and associated urls:

Issue[ -][0-9]+       http://externaltracker/issue/:id
Project[ -][0-9]+     http://externaltracker/project/:id: 

With regular expression engines it is also possible to create named groups, using it can allow to use more variables like

Issue[ -](?id[0-9]+) will allow external tracker to match both Issue 12 and Issue-12 and the :id will come from the named capture group in the regular expression

Issue[ -](?project[^/]+)/(?id[0-9]+) will define :project and :id as variable that can be used in the url like http://externaltracker/issuer?project=:project&id=:id

Of course a checkbox can be added to activate this feature only if desired and old behavior will remain if unchecked.

Permissions and Security

The permissions will be the same than nowadays for the service, only configuration will be enhanced.

Links / references

Edited Sep 02, 2020 by 🤖 GitLab Bot 🤖
Assignee Loading
Time tracking Loading