diff options
author | Stefan Hanreich <stefanhani@gmail.com> | 2017-05-09 18:34:14 +0200 |
---|---|---|
committer | Stefan Hanreich <stefanhani@gmail.com> | 2017-06-18 23:57:22 +0200 |
commit | f4c05e038079759ff70473036391fc023ce4b7d3 (patch) | |
tree | ba7d8e99d3b23a9787ca1cdfac7ea1a6d7a124e8 | |
parent | f01c5d8627ce069e84f04e587ab59ebbf7e8ac88 (diff) | |
download | gitlab-ce-f4c05e038079759ff70473036391fc023ce4b7d3.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 58758f7ca8a..f190dcf306c 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -187,9 +187,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 d1f9881e51b..eef96f3194f 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 | |