Stage names are double escaped in when output in HTML on GitLab
Summary
CI/CD stages with a &
in the name get rendered as &
; the HTML is doubly escaped.
Steps to reproduce
Name a CI/CD stage with a &
. E.g., this is an abbreviated version of the .gitlab-ci.yml
my project used:
stages:
- "Lint & Test"
lint:
stage: "Lint & Test"
allow_failure: false
image:
name: ubuntu:xenial
script:
- 'echo "Hello, world."'
tags:
- docker-pull-always
Example Project
Example Project Demonstrating the Bug
What is the current bug behavior?
(Note: We are self hosted, however, the bug appears to also be present on GitLab.com.)
Here is a screenshot of what we see, when using something like the above:
What is the expected correct behavior?
Just "Lint & Test"
We also went with this unusual name b/c before that, we had used more "identifier" like names, such as lint_and_test
; however, the same screen will capitalize the name, resulting in "Lint_and_test", which is IMO ugly.
Note that the "pipelines" page listing all pipelines (https://.../{group}/{project}/pipelines
) does not exhibit either behavior. (Neither doubly escaping nor randomly capitalizing the first letter.) That is, the pipelines listing page works perfectly!
Relevant logs and/or screenshots
N/A / Above.
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
This bug happens on GitLab.com, but was discovered on a self-hosted installation of GitLab.
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:env:info
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
(If you can, link to the line of code that might be responsible for the problem)