diff options
author | Stefan Hanreich <stefanhani@gmail.com> | 2017-05-09 18:34:14 +0200 |
---|---|---|
committer | Stefan Hanreich <stefanhani@gmail.com> | 2017-05-11 19:59:44 +0200 |
commit | 3c4f414bfccd0fda4bea4f6d553159f06bc78124 (patch) | |
tree | b0fcc60d8ac1126ceec7f4365a1fd4fae716c75b | |
parent | ea5d43a3b8c01fb83d215a7eb15f246f26a34c64 (diff) | |
download | gitlab-ce-3c4f414bfccd0fda4bea4f6d553159f06bc78124.tar.gz |
no trailing / leading hyphens in CI_COMMIT_REF_SLUG. Fixes #32035
-rw-r--r-- | app/models/ci/build.rb | 4 | ||||
-rw-r--r-- | doc/ci/variables/README.md | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 3c4a4d93349..756f976a449 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -170,9 +170,11 @@ module Ci # * Lowercased # * Anything not matching [a-z0-9-] is replaced with a - # * Maximum length is 63 bytes + # * First/Last Character is not a hyphen def ref_slug slugified = ref.to_s.downcase - slugified.gsub(/[^a-z0-9]/, '-')[0..62] + slugified = slugified.gsub(/[^a-z0-9]/, '-')[0..62] + slugified.gsub(/(^\-+|\-+$)/, '') end # Variables whose value does not depend on other variables diff --git a/doc/ci/variables/README.md b/doc/ci/variables/README.md index 045d3821f66..f0c92540fbb 100644 --- a/doc/ci/variables/README.md +++ b/doc/ci/variables/README.md @@ -37,7 +37,7 @@ future GitLab releases.** |-------------------------------- |--------|--------|-------------| | **CI** | all | 0.4 | Mark that job is executed in CI environment | | **CI_COMMIT_REF_NAME** | 9.0 | all | The branch or tag name for which project is built | -| **CI_COMMIT_REF_SLUG** | 9.0 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. | +| **CI_COMMIT_REF_SLUG** | 9.0 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. No leading / trailing `-`. Use in URLs, host names and domain names. | | **CI_COMMIT_SHA** | 9.0 | all | The commit revision for which project is built | | **CI_COMMIT_TAG** | 9.0 | 0.5 | The commit tag name. Present only when building tags. | | **CI_DEBUG_TRACE** | all | 1.7 | Whether [debug tracing](#debug-tracing) is enabled | |