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-09 18:34:14 +0200
commit2c4a69616b59428ffe23908c96241d82ca316bcd (patch)
tree60f5695a3b243c693f5f4123f53c9965306057fa
parenta3607aa43971d03b718e070db271104553eca549 (diff)
downloadgitlab-ce-2c4a69616b59428ffe23908c96241d82ca316bcd.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 971ab7cb0ee..d21f79560c4 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 |