gitlab-org--gitlab-foss/spec/lib
Kamil Trzciński dfdce39ad6 Merge branch '22864-add-clean-environment-name' into 'master'
Add a slug to environments

## What does this MR do?

Adds a `slug` field to the `environments` table, populating existing rows and ensuring that new rows will get an entry.

Cleaning examples:

* `review/foo`  => `review-foo-5gghdf`
* `review-foo` => `review-foo`
* `1-foo` => `env-1-foo-e2hx12`
* `production` => `production`
* `Production` => `production-f8ddlz`

## Are there points in the code the reviewer needs to double check?

This migration requires downtime. I don't see a way to avoid it.

## Why was this MR needed?

External services often have more restrictive rules on naming than those enforced for `environments.name`. In particular, forward slashes and names longer than 24 characters causes problems on OpenShift. `slug` is designed to be an acceptable alternative to `name` in these situations. Since forward slashes are a documented part of environment names, to set environment types, we need an envionmnent slug, not just a slug for the branch name.

## Does this MR meet the acceptance criteria?

- [x] [Changelog entry](https://docs.gitlab.com/ce/development/changelog.html) added
- [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
- [X] API support added
- Tests
  - [X] Added for this feature/bug
  - [x] All builds are passing
- [X] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
- [X] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [X] Branch has no merge conflicts with `master` (if it does - rebase it please)
- [X] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

## What are the relevant issue numbers?

Part of #22864

See merge request !7983
2016-12-15 16:18:50 +00:00
..
banzai Merge branch 'katex-math' into 'master' 2016-12-15 14:11:38 +00:00
ci Make CI job script a required configuration entry 2016-11-18 14:14:41 +01:00
constraints Add nested groups support on data level 2016-12-08 11:47:16 +02:00
container_registry Explicitly remove authorization token and make sure that invalid addresses are properly handled 2016-07-15 17:35:23 +02:00
gitlab Merge branch '22864-add-clean-environment-name' into 'master' 2016-12-15 16:18:50 +00:00
json_web_token Revert "Fix merge conflicts - squashed commit" 2016-06-03 11:10:17 +02:00
disable_email_interceptor_spec.rb adds second batch of tests changed to active tense 2016-08-09 15:11:39 +01:00
event_filter_spec.rb Add issue events filter and make sure "All" really shows everything 2016-12-04 23:07:22 +01:00
expand_variables_spec.rb Verify expandability of variables defined as part of environment 2016-09-19 10:07:13 +02:00
extracts_path_spec.rb Allow browsing branches that end with '.atom' 2016-10-11 13:31:12 +01:00
file_size_validator_spec.rb
git_ref_validator_spec.rb
gitlab_spec.rb Update Gitlab.com? to support staging 2016-06-27 15:10:36 -04:00
light_url_builder_spec.rb refactored and added missing spec to light URL builder 2016-11-17 08:22:57 +01:00
repository_cache_spec.rb Use project ID in repository cache to prevent stale data from persisting across projects 2016-07-25 05:09:28 -07:00