summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hanreich <stefanhani@gmail.com>2017-05-09 18:34:14 +0200
committerStefan Hanreich <stefanhani@gmail.com>2017-05-11 19:59:44 +0200
commit3c4f414bfccd0fda4bea4f6d553159f06bc78124 (patch)
treeb0fcc60d8ac1126ceec7f4365a1fd4fae716c75b
parentea5d43a3b8c01fb83d215a7eb15f246f26a34c64 (diff)
downloadgitlab-ce-3c4f414bfccd0fda4bea4f6d553159f06bc78124.tar.gz
no trailing / leading hyphens in CI_COMMIT_REF_SLUG. Fixes #32035
-rw-r--r--app/models/ci/build.rb4
-rw-r--r--doc/ci/variables/README.md2
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 |