summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorJames Ramsay <james@jramsay.com.au>2018-02-19 15:41:04 -0500
committerJames Ramsay <james@jramsay.com.au>2018-04-06 08:45:17 -0400
commit07f517d441ab8782286b4a59d56a630393d75e16 (patch)
treed388461feb28fbed2b5c6f52303c7eb7b0f633e3 /config
parent0b1b9c409d3adbf4517351dbb9037ed053f73e67 (diff)
downloadgitlab-ce-07f517d441ab8782286b4a59d56a630393d75e16.tar.gz
Add new repository archive route
Repository archives are always named `<project>-<ref>-<sha>` even if the ref is a commit. A consequence of always including the sha even for tags is that packaging a release is more difficult because both the ref and sha must be known by the packager. - add `<project>/-/archive/<ref>/<filename>.<format>` route using the `-` separator to prevent namespace collisions. If the filename is `<project>-<ref>` or the ref is a sha, the sha will be omitted, otherwise the default filename will be used. - deprecate previous archive route `repository/<ref>/archive`
Diffstat (limited to 'config')
-rw-r--r--config/routes/project.rb2
-rw-r--r--config/routes/repository.rb7
2 files changed, 6 insertions, 3 deletions
diff --git a/config/routes/project.rb b/config/routes/project.rb
index 48ba8ef06f9..aa071d28f97 100644
--- a/config/routes/project.rb
+++ b/config/routes/project.rb
@@ -249,6 +249,8 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
end
scope '-' do
+ get 'archive/*id', constraints: { format: Gitlab::PathRegex.archive_formats_regex, id: /.+?/ }, to: 'repositories#archive', as: 'archive'
+
resources :jobs, only: [:index, :show], constraints: { id: /\d+/ } do
collection do
post :cancel_all
diff --git a/config/routes/repository.rb b/config/routes/repository.rb
index eace3a615b4..9e506a1a43a 100644
--- a/config/routes/repository.rb
+++ b/config/routes/repository.rb
@@ -2,10 +2,11 @@
resource :repository, only: [:create] do
member do
- get ':ref/archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex, ref: /.+/ }, action: 'archive', as: 'archive'
-
# deprecated since GitLab 9.5
- get 'archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex }, as: 'archive_alternative'
+ get 'archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex }, as: 'archive_alternative', defaults: { append_sha: true }
+
+ # deprecated since GitLab 10.7
+ get ':id/archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex, id: /.+/ }, action: 'archive', as: 'archive_deprecated', defaults: { append_sha: true }
end
end