Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
6865c46c
Commit
6865c46c
authored
Oct 06, 2016
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed how collections are rendered
Used variables in haml for replicated checks Fixed broken conflict
parent
996e8024
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
15 additions
and
824 deletions
+15
-824
app/controllers/projects/project_members_controller.rb
app/controllers/projects/project_members_controller.rb
+0
-15
app/views/projects/group_links/update.js.haml
app/views/projects/group_links/update.js.haml
+1
-1
app/views/projects/project_members/_groups.html.haml
app/views/projects/project_members/_groups.html.haml
+1
-3
app/views/projects/project_members/_team.html.haml
app/views/projects/project_members/_team.html.haml
+1
-2
app/views/projects/project_members/index.html.haml
app/views/projects/project_members/index.html.haml
+1
-1
app/views/shared/members/_group.html.haml
app/views/shared/members/_group.html.haml
+5
-4
app/views/shared/members/_member.html.haml
app/views/shared/members/_member.html.haml
+6
-4
config/routes.rb
config/routes.rb
+0
-794
No files found.
app/controllers/projects/project_members_controller.rb
View file @
6865c46c
...
...
@@ -98,21 +98,6 @@ class Projects::ProjectMembersController < Projects::ApplicationController
notice:
notice
)
end
def
options
users
=
User
.
all
users
=
users
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
users
=
users
.
page
(
1
)
groups
=
Group
.
all
groups
=
groups
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
groups
=
groups
.
page
(
1
)
render
json:
{
Groups
:
groups
.
as_json
(
only:
[
:id
,
:name
],
methods:
[
:avatar_url
]),
Users
:
users
.
as_json
(
only:
[
:id
,
:name
,
:username
],
methods:
[
:avatar_url
]),
}
end
protected
def
member_params
...
...
app/views/projects/group_links/update.js.haml
View file @
6865c46c
:plain
var $listItem = $('
#{
escape_javascript
(
render
(
'shared/members/group'
,
group_link:
@group_link
,
group:
@group_link
.
group
))
}
');
var $listItem = $('
#{
escape_javascript
(
render
(
'shared/members/group'
,
group_link:
@group_link
))
}
');
$("#group_member_
#{
@group_link
.
id
}
.list-item-name").replaceWith($listItem.find('.list-item-name'));
app/views/projects/project_members/_groups.html.haml
View file @
6865c46c
...
...
@@ -4,6 +4,4 @@
%strong
#{
@project
.
name
}
%span
.badge
=
group_links
.
size
%ul
.content-list
-
group_links
.
each
do
|
group_link
|
-
group
=
group_link
.
group
=
render
'shared/members/group'
,
group_link:
group_link
,
group:
group
=
render
partial:
'shared/members/group'
,
collection:
group_links
,
as: :group_link
app/views/projects/project_members/_team.html.haml
View file @
6865c46c
...
...
@@ -4,5 +4,4 @@
%strong
#{
@project
.
name
}
%span
.badge
=
@project_members
.
total_count
%ul
.content-list
-
members
.
each
do
|
member
|
=
render
'shared/members/member'
,
member:
member
=
render
partial:
'shared/members/member'
,
collection:
members
,
as: :member
app/views/projects/project_members/index.html.haml
View file @
6865c46c
...
...
@@ -21,7 +21,7 @@
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Find existing members by name'
,
class:
'form-control'
,
spellcheck:
false
}
%button
.member-search-btn
{
type:
"submit"
,
"aria-label"
=>
"Submit search"
}
=
icon
(
"search"
)
-
if
@group_links
.
size
>
0
-
if
@group_links
.
any?
=
render
'groups'
,
group_links:
@group_links
=
render
'team'
,
members:
@project_members
...
...
app/views/shared/members/_group.html.haml
View file @
6865c46c
-
group
=
local_assigns
[
:group
]
-
group_link
=
local_assigns
[
:group_link
]
-
group
=
group_link
.
group
-
can_admin_member
=
can?
(
current_user
,
:admin_project_member
,
@project
)
%li
.member.group_member
{
id:
"group_member_#{group_link.id}"
}
%span
{
class:
"list-item-name"
}
=
image_tag
group_icon
(
group
),
class:
"avatar s40"
,
alt:
''
...
...
@@ -13,11 +14,11 @@
Expires in
#{
distance_of_time_in_words_to_now
(
group_link
.
expires_at
)
}
.controls.member-controls
=
form_tag
namespace_project_group_link_path
(
@project
.
namespace
,
@project
,
group_link
),
method: :put
,
remote:
true
,
class:
'form-horizontal js-edit-member-form'
do
=
select_tag
'group_link[group_access]'
,
options_for_select
(
ProjectGroupLink
.
access_options
,
group_link
.
group_access
),
class:
'form-control member-form-control append-right-5 js-member-update-control'
,
id:
"member_access_level_
#{
group
.
id
}
"
,
disabled:
!
can
?
(
current_user
,
:admin_project_member
,
@project
)
=
select_tag
'group_link[group_access]'
,
options_for_select
(
ProjectGroupLink
.
access_options
,
group_link
.
group_access
),
class:
'form-control member-form-control append-right-5 js-member-update-control'
,
id:
"member_access_level_
#{
group
.
id
}
"
,
disabled:
!
can
_admin_member
.prepend-left-5.clearable-input.member-form-control
=
text_field_tag
'group_link[expires_at]'
,
group_link
.
expires_at
,
class:
'form-control js-access-expiration-date js-member-update-control'
,
placeholder:
'Expiration date'
,
id:
"member_expires_at_
#{
group
.
id
}
"
,
disabled:
!
can
?
(
current_user
,
:admin_project_member
,
@project
)
=
text_field_tag
'group_link[expires_at]'
,
group_link
.
expires_at
,
class:
'form-control js-access-expiration-date js-member-update-control'
,
placeholder:
'Expiration date'
,
id:
"member_expires_at_
#{
group
.
id
}
"
,
disabled:
!
can
_admin_member
%i
.clear-icon.js-clear-input
-
if
can
?
(
current_user
,
:admin_project_member
,
@project
)
-
if
can
_admin_member
=
link_to
namespace_project_group_link_path
(
@project
.
namespace
,
@project
,
group_link
),
remote:
true
,
method: :delete
,
...
...
app/views/shared/members/_member.html.haml
View file @
6865c46c
...
...
@@ -2,6 +2,7 @@
-
show_controls
=
local_assigns
.
fetch
(
:show_controls
,
true
)
-
user
=
local_assigns
.
fetch
(
:user
,
member
.
user
)
-
source
=
member
.
source
-
can_admin_member
=
can?
(
current_user
,
action_member_permission
(
:update
,
member
),
member
)
%li
.member
{
class:
dom_class
(
member
),
id:
dom_id
(
member
)
}
%span
.list-item-name
...
...
@@ -47,18 +48,19 @@
-
if
show_controls
-
if
user
!=
current_user
=
form_for
member
,
remote:
true
,
html:
{
class:
'form-horizontal js-edit-member-form'
}
do
|
f
|
=
f
.
select
:access_level
,
options_for_select
(
member
.
class
.
access_level_roles
,
member
.
access_level
),
{},
class:
'form-control member-form-control append-right-5 js-member-update-control'
,
id:
"member_access_level_
#{
member
.
id
}
"
,
disabled:
!
can
?
(
current_user
,
action_member_permission
(
:update
,
member
),
member
)
=
f
.
select
:access_level
,
options_for_select
(
member
.
class
.
access_level_roles
,
member
.
access_level
),
{},
class:
'form-control member-form-control append-right-5 js-member-update-control'
,
id:
"member_access_level_
#{
member
.
id
}
"
,
disabled:
!
can
_admin_member
.prepend-left-5.clearable-input.member-form-control
=
f
.
text_field
:expires_at
,
class:
'form-control js-access-expiration-date js-member-update-control'
,
placeholder:
'Expiration date'
,
id:
"member_expires_at_
#{
member
.
id
}
"
,
disabled:
!
can
?
(
current_user
,
action_member_permission
(
:update
,
member
),
member
)
=
f
.
text_field
:expires_at
,
class:
'form-control js-access-expiration-date js-member-update-control'
,
placeholder:
'Expiration date'
,
id:
"member_expires_at_
#{
member
.
id
}
"
,
disabled:
!
can
_admin_member
%i
.clear-icon.js-clear-input
-
else
%span
.member-access-text
=
member
.
human_access
-
if
!
user
&&
can?
(
current_user
,
action_member_permission
(
:admin
,
member
),
member
.
source
)
-
if
member
.
invite?
&&
can?
(
current_user
,
action_member_permission
(
:admin
,
member
),
member
.
source
)
=
link_to
'Resend invite'
,
polymorphic_path
([
:resend_invite
,
member
]),
method: :post
,
class:
'btn btn-default prepend-left-10'
-
if
member
.
request?
&&
can?
(
current_user
,
action_member_permission
(
:update
,
member
),
member
)
-
elsif
member
.
request?
&&
can_admin_member
=
link_to
icon
(
'check inverse'
),
polymorphic_path
([
:approve_access_request
,
member
]),
method: :post
,
class:
'btn btn-success prepend-left-10'
,
...
...
config/routes.rb
View file @
6865c46c
...
...
@@ -74,799 +74,6 @@ Rails.application.routes.draw do
# Notification settings
resources
:notification_settings
,
only:
[
:create
,
:update
]
<<<<<<<
HEAD
#
# Import
#
namespace
:import
do
resource
:github
,
only:
[
:create
,
:new
],
controller: :github
do
post
:personal_access_token
get
:status
get
:callback
get
:jobs
end
resource
:gitlab
,
only:
[
:create
],
controller: :gitlab
do
get
:status
get
:callback
get
:jobs
end
resource
:bitbucket
,
only:
[
:create
],
controller: :bitbucket
do
get
:status
get
:callback
get
:jobs
end
resource
:google_code
,
only:
[
:create
,
:new
],
controller: :google_code
do
get
:status
post
:callback
get
:jobs
get
:new_user_map
,
path: :user_map
post
:create_user_map
,
path: :user_map
end
resource
:fogbugz
,
only:
[
:create
,
:new
],
controller: :fogbugz
do
get
:status
post
:callback
get
:jobs
get
:new_user_map
,
path: :user_map
post
:create_user_map
,
path: :user_map
end
resource
:gitlab_project
,
only:
[
:create
,
:new
]
do
post
:create
end
end
#
# Uploads
#
scope
path: :uploads
do
# Note attachments and User/Group/Project avatars
get
":model/:mounted_as/:id/:filename"
,
to:
"uploads#show"
,
constraints:
{
model:
/note|user|group|project/
,
mounted_as:
/avatar|attachment/
,
filename:
/[^\/]+/
}
# Appearance
get
":model/:mounted_as/:id/:filename"
,
to:
"uploads#show"
,
constraints:
{
model:
/appearance/
,
mounted_as:
/logo|header_logo/
,
filename:
/.+/
}
# Project markdown uploads
get
":namespace_id/:project_id/:secret/:filename"
,
to:
"projects/uploads#show"
,
constraints:
{
namespace_id:
/[a-zA-Z.0-9_\-]+/
,
project_id:
/[a-zA-Z.0-9_\-]+/
,
filename:
/[^\/]+/
}
end
# Redirect old note attachments path to new uploads path.
get
"files/note/:id/:filename"
,
to:
redirect
(
"uploads/note/attachment/%{id}/%{filename}"
),
constraints:
{
filename:
/[^\/]+/
}
#
# Explore area
#
namespace
:explore
do
resources
:projects
,
only:
[
:index
]
do
collection
do
get
:trending
get
:starred
end
end
resources
:groups
,
only:
[
:index
]
resources
:snippets
,
only:
[
:index
]
root
to:
'projects#trending'
end
# Compatibility with old routing
get
'public'
=>
'explore/projects#index'
get
'public/projects'
=>
'explore/projects#index'
#
# Admin Area
#
namespace
:admin
do
resources
:users
,
constraints:
{
id:
/[a-zA-Z.\/0-9_\-]+/
}
do
resources
:keys
,
only:
[
:show
,
:destroy
]
resources
:identities
,
except:
[
:show
]
member
do
get
:projects
get
:keys
get
:groups
put
:block
put
:unblock
put
:unlock
put
:confirm
post
:impersonate
patch
:disable_two_factor
delete
'remove/:email_id'
,
action:
'remove_email'
,
as:
'remove_email'
end
end
resource
:impersonation
,
only: :destroy
resources
:abuse_reports
,
only:
[
:index
,
:destroy
]
resources
:spam_logs
,
only:
[
:index
,
:destroy
]
do
member
do
post
:mark_as_ham
end
end
resources
:applications
resources
:groups
,
constraints:
{
id:
/[^\/]+/
}
do
member
do
put
:members_update
end
end
resources
:deploy_keys
,
only:
[
:index
,
:new
,
:create
,
:destroy
]
resources
:hooks
,
only:
[
:index
,
:create
,
:destroy
]
do
get
:test
end
resources
:broadcast_messages
,
only:
[
:index
,
:edit
,
:create
,
:update
,
:destroy
]
do
post
:preview
,
on: :collection
end
resource
:logs
,
only:
[
:show
]
resource
:health_check
,
controller:
'health_check'
,
only:
[
:show
]
resource
:background_jobs
,
controller:
'background_jobs'
,
only:
[
:show
]
resource
:system_info
,
controller:
'system_info'
,
only:
[
:show
]
resources
:requests_profiles
,
only:
[
:index
,
:show
],
param: :name
,
constraints:
{
name:
/.+\.html/
}
resources
:namespaces
,
path:
'/projects'
,
constraints:
{
id:
/[a-zA-Z.0-9_\-]+/
},
only:
[]
do
root
to:
'projects#index'
,
as: :projects
resources
(
:projects
,
path:
'/'
,
constraints:
{
id:
/[a-zA-Z.0-9_\-]+/
},
only:
[
:index
,
:show
])
do
root
to:
'projects#show'
member
do
put
:transfer
post
:repository_check
end
resources
:runner_projects
,
only:
[
:create
,
:destroy
]
end
end
resource
:appearances
,
only:
[
:show
,
:create
,
:update
],
path:
'appearance'
do
member
do
get
:preview
delete
:logo
delete
:header_logos
end
end
resource
:application_settings
,
only:
[
:show
,
:update
]
do
resources
:services
,
only:
[
:index
,
:edit
,
:update
]
put
:reset_runners_token
put
:reset_health_check_token
put
:clear_repository_check_states
end
resources
:labels
resources
:runners
,
only:
[
:index
,
:show
,
:update
,
:destroy
]
do
member
do
get
:resume
get
:pause
end
end
resources
:builds
,
only: :index
do
collection
do
post
:cancel_all
end
end
root
to:
'dashboard#index'
end
#
# Profile Area
#
resource
:profile
,
only:
[
:show
,
:update
]
do
member
do
get
:audit_log
get
:applications
,
to:
'oauth/applications#index'
put
:reset_private_token
put
:update_username
end
scope
module: :profiles
do
resource
:account
,
only:
[
:show
]
do
member
do
delete
:unlink
end
end
resource
:notifications
,
only:
[
:show
,
:update
]
resource
:password
,
only:
[
:new
,
:create
,
:edit
,
:update
]
do
member
do
put
:reset
end
end
resource
:preferences
,
only:
[
:show
,
:update
]
resources
:keys
,
only:
[
:index
,
:show
,
:new
,
:create
,
:destroy
]
resources
:emails
,
only:
[
:index
,
:create
,
:destroy
]
resource
:avatar
,
only:
[
:destroy
]
resources
:personal_access_tokens
,
only:
[
:index
,
:create
]
do
member
do
put
:revoke
end
end
resource
:two_factor_auth
,
only:
[
:show
,
:create
,
:destroy
]
do
member
do
post
:create_u2f
post
:codes
patch
:skip
end
end
resources
:u2f_registrations
,
only:
[
:destroy
]
end
end
scope
(
path:
'u/:username'
,
as: :user
,
constraints:
{
username:
/[a-zA-Z.0-9_\-]+(?<!\.atom)/
},
controller: :users
)
do
get
:calendar
get
:calendar_activities
get
:groups
get
:projects
get
:contributed
,
as: :contributed_projects
get
:snippets
get
'/'
,
action: :show
end
#
# Dashboard Area
#
resource
:dashboard
,
controller:
'dashboard'
,
only:
[]
do
get
:issues
get
:merge_requests
get
:activity
scope
module: :dashboard
do
resources
:milestones
,
only:
[
:index
,
:show
]
resources
:labels
,
only:
[
:index
]
resources
:groups
,
only:
[
:index
]
resources
:snippets
,
only:
[
:index
]
resources
:todos
,
only:
[
:index
,
:destroy
]
do
collection
do
delete
:destroy_all
end
end
resources
:projects
,
only:
[
:index
]
do
collection
do
get
:starred
end
end
end
root
to:
"dashboard/projects#index"
end
#
# Groups Area
#
resources
:groups
,
constraints:
{
id:
/[a-zA-Z.0-9_\-]+(?<!\.atom)/
}
do
member
do
get
:issues
get
:merge_requests
get
:projects
get
:activity
end
scope
module: :groups
do
resources
:group_members
,
only:
[
:index
,
:create
,
:update
,
:destroy
],
concerns: :access_requestable
do
post
:resend_invite
,
on: :member
delete
:leave
,
on: :collection
end
resource
:avatar
,
only:
[
:destroy
]
resources
:milestones
,
constraints:
{
id:
/[^\/]+/
},
only:
[
:index
,
:show
,
:update
,
:new
,
:create
]
end
end
resources
:projects
,
constraints:
{
id:
/[^\/]+/
},
only:
[
:index
,
:new
,
:create
]
devise_for
:users
,
controllers:
{
omniauth_callbacks: :omniauth_callbacks
,
registrations: :registrations
,
passwords: :passwords
,
sessions: :sessions
,
confirmations: :confirmations
}
devise_scope
:user
do
get
'/users/auth/:provider/omniauth_error'
=>
'omniauth_callbacks#omniauth_error'
,
as: :omniauth_error
get
'/users/almost_there'
=>
'confirmations#almost_there'
end
root
to:
"root#index"
#
# Project Area
#
resources
:namespaces
,
path:
'/'
,
constraints:
{
id:
/[a-zA-Z.0-9_\-]+/
},
only:
[]
do
resources
(
:projects
,
constraints:
{
id:
/[a-zA-Z.0-9_\-]+(?<!\.atom)/
},
except:
[
:new
,
:create
,
:index
],
path:
"/"
)
do
member
do
put
:transfer
delete
:remove_fork
post
:archive
post
:unarchive
post
:housekeeping
post
:toggle_star
post
:preview_markdown
post
:export
post
:remove_export
post
:generate_new_export
get
:download_export
get
:autocomplete_sources
get
:activity
get
:refs
end
scope
module: :projects
do
scope
constraints:
{
id:
/.+\.git/
,
format:
nil
}
do
# Git HTTP clients ('git clone' etc.)
get
'/info/refs'
,
to:
'git_http#info_refs'
post
'/git-upload-pack'
,
to:
'git_http#git_upload_pack'
post
'/git-receive-pack'
,
to:
'git_http#git_receive_pack'
# Git LFS API (metadata)
post
'/info/lfs/objects/batch'
,
to:
'lfs_api#batch'
post
'/info/lfs/objects'
,
to:
'lfs_api#deprecated'
get
'/info/lfs/objects/*oid'
,
to:
'lfs_api#deprecated'
# GitLab LFS object storage
scope
constraints:
{
oid:
/[a-f0-9]{64}/
}
do
get
'/gitlab-lfs/objects/*oid'
,
to:
'lfs_storage#download'
scope
constraints:
{
size:
/[0-9]+/
}
do
put
'/gitlab-lfs/objects/*oid/*size/authorize'
,
to:
'lfs_storage#upload_authorize'
put
'/gitlab-lfs/objects/*oid/*size'
,
to:
'lfs_storage#upload_finalize'
end
end
end
# Allow /info/refs, /info/refs?service=git-upload-pack, and
# /info/refs?service=git-receive-pack, but nothing else.
#
git_http_handshake
=
lambda
do
|
request
|
request
.
query_string
.
blank?
||
request
.
query_string
.
match
(
/\Aservice=git-(upload|receive)-pack\z/
)
end
ref_redirect
=
redirect
do
|
params
,
request
|
path
=
"
#{
params
[
:namespace_id
]
}
/
#{
params
[
:project_id
]
}
.git/info/refs"
path
<<
"?
#{
request
.
query_string
}
"
unless
request
.
query_string
.
blank?
path
end
get
'/info/refs'
,
constraints:
git_http_handshake
,
to:
ref_redirect
# Blob routes:
get
'/new/*id'
,
to:
'blob#new'
,
constraints:
{
id:
/.+/
},
as:
'new_blob'
post
'/create/*id'
,
to:
'blob#create'
,
constraints:
{
id:
/.+/
},
as:
'create_blob'
get
'/edit/*id'
,
to:
'blob#edit'
,
constraints:
{
id:
/.+/
},
as:
'edit_blob'
put
'/update/*id'
,
to:
'blob#update'
,
constraints:
{
id:
/.+/
},
as:
'update_blob'
post
'/preview/*id'
,
to:
'blob#preview'
,
constraints:
{
id:
/.+/
},
as:
'preview_blob'
#
# Templates
#
get
'/templates/:template_type/:key'
=>
'templates#show'
,
as: :template
scope
do
get
(
'/blob/*id/diff'
,
to:
'blob#diff'
,
constraints:
{
id:
/.+/
,
format:
false
},
as: :blob_diff
)
get
(
'/blob/*id'
,
to:
'blob#show'
,
constraints:
{
id:
/.+/
,
format:
false
},
as: :blob
)
delete
(
'/blob/*id'
,
to:
'blob#destroy'
,
constraints:
{
id:
/.+/
,
format:
false
}
)
put
(
'/blob/*id'
,
to:
'blob#update'
,
constraints:
{
id:
/.+/
,
format:
false
}
)
post
(
'/blob/*id'
,
to:
'blob#create'
,
constraints:
{
id:
/.+/
,
format:
false
}
)
end
scope
do
get
(
'/raw/*id'
,
to:
'raw#show'
,
constraints:
{
id:
/.+/
,
format:
/(html|js)/
},
as: :raw
)
end
scope
do
get
(
'/tree/*id'
,
to:
'tree#show'
,
constraints:
{
id:
/.+/
,
format:
/(html|js)/
},
as: :tree
)
end
scope
do
get
(
'/find_file/*id'
,
to:
'find_file#show'
,
constraints:
{
id:
/.+/
,
format:
/html/
},
as: :find_file
)
end
scope
do
get
(
'/files/*id'
,
to:
'find_file#list'
,
constraints:
{
id:
/(?:[^.]|\.(?!json$))+/
,
format:
/json/
},
as: :files
)
end
scope
do
post
(
'/create_dir/*id'
,
to:
'tree#create_dir'
,
constraints:
{
id:
/.+/
},
as:
'create_dir'
)
end
scope
do
get
(
'/blame/*id'
,
to:
'blame#show'
,
constraints:
{
id:
/.+/
,
format:
/(html|js)/
},
as: :blame
)
end
scope
do
get
(
'/commits/*id'
,
to:
'commits#show'
,
constraints:
{
id:
/(?:[^.]|\.(?!atom$))+/
,
format:
/atom/
},
as: :commits
)
end
resource
:avatar
,
only:
[
:show
,
:destroy
]
resources
:commit
,
only:
[
:show
],
constraints:
{
id:
/\h{7,40}/
}
do
member
do
get
:branches
get
:builds
get
:pipelines
post
:cancel_builds
post
:retry_builds
post
:revert
post
:cherry_pick
get
:diff_for_path
end
end
resources
:compare
,
only:
[
:index
,
:create
]
do
collection
do
get
:diff_for_path
end
end
get
'/compare/:from...:to'
,
to:
'compare#show'
,
as:
'compare'
,
constraints:
{
from:
/.+/
,
to:
/.+/
}
# Don't use format parameter as file extension (old 3.0.x behavior)
# See http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments
scope
format:
false
do
resources
:network
,
only:
[
:show
],
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
resources
:graphs
,
only:
[
:show
],
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
do
member
do
get
:commits
get
:ci
get
:languages
end
end
end
resources
:snippets
,
concerns: :awardable
,
constraints:
{
id:
/\d+/
}
do
member
do
get
'raw'
end
end
WIKI_SLUG_ID
=
{
id:
/\S+/
}
unless
defined?
WIKI_SLUG_ID
scope
do
# Order matters to give priority to these matches
get
'/wikis/git_access'
,
to:
'wikis#git_access'
get
'/wikis/pages'
,
to:
'wikis#pages'
,
as:
'wiki_pages'
post
'/wikis'
,
to:
'wikis#create'
get
'/wikis/*id/history'
,
to:
'wikis#history'
,
as:
'wiki_history'
,
constraints:
WIKI_SLUG_ID
get
'/wikis/*id/edit'
,
to:
'wikis#edit'
,
as:
'wiki_edit'
,
constraints:
WIKI_SLUG_ID
get
'/wikis/*id'
,
to:
'wikis#show'
,
as:
'wiki'
,
constraints:
WIKI_SLUG_ID
delete
'/wikis/*id'
,
to:
'wikis#destroy'
,
constraints:
WIKI_SLUG_ID
put
'/wikis/*id'
,
to:
'wikis#update'
,
constraints:
WIKI_SLUG_ID
post
'/wikis/*id/preview_markdown'
,
to:
'wikis#preview_markdown'
,
constraints:
WIKI_SLUG_ID
,
as:
'wiki_preview_markdown'
end
resource
:repository
,
only:
[
:create
]
do
member
do
get
'archive'
,
constraints:
{
format:
Gitlab
::
Regex
.
archive_formats_regex
}
end
end
resources
:services
,
constraints:
{
id:
/[^\/]+/
},
only:
[
:index
,
:edit
,
:update
]
do
member
do
get
:test
end
end
resources
:deploy_keys
,
constraints:
{
id:
/\d+/
},
only:
[
:index
,
:new
,
:create
]
do
member
do
put
:enable
put
:disable
end
end
resources
:forks
,
only:
[
:index
,
:new
,
:create
]
resource
:import
,
only:
[
:new
,
:create
,
:show
]
resources
:refs
,
only:
[]
do
collection
do
get
'switch'
end
member
do
# tree viewer logs
get
'logs_tree'
,
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
# Directories with leading dots erroneously get rejected if git
# ref regex used in constraints. Regex verification now done in controller.
get
'logs_tree/*path'
=>
'refs#logs_tree'
,
as: :logs_file
,
constraints:
{
id:
/.*/
,
path:
/.*/
}
end
end
resources
:merge_requests
,
concerns: :awardable
,
constraints:
{
id:
/\d+/
}
do
member
do
get
:commits
get
:diffs
get
:conflicts
get
:builds
get
:pipelines
get
:merge_check
post
:merge
post
:cancel_merge_when_build_succeeds
get
:ci_status
post
:toggle_subscription
post
:remove_wip
get
:diff_for_path
post
:resolve_conflicts
end
collection
do
get
:branch_from
get
:branch_to
get
:update_branches
get
:diff_for_path
post
:bulk_update
end
resources
:discussions
,
only:
[],
constraints:
{
id:
/\h{40}/
}
do
member
do
post
:resolve
delete
:resolve
,
action: :unresolve
end
end
end
resources
:branches
,
only:
[
:index
,
:new
,
:create
,
:destroy
],
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
resources
:tags
,
only:
[
:index
,
:show
,
:new
,
:create
,
:destroy
],
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
do
resource
:release
,
only:
[
:edit
,
:update
]
end
resources
:protected_branches
,
only:
[
:index
,
:show
,
:create
,
:update
,
:destroy
],
constraints:
{
id:
Gitlab
::
Regex
.
git_reference_regex
}
resources
:variables
,
only:
[
:index
,
:show
,
:update
,
:create
,
:destroy
]
resources
:triggers
,
only:
[
:index
,
:create
,
:destroy
]
resources
:pipelines
,
only:
[
:index
,
:new
,
:create
,
:show
]
do
collection
do
resource
:pipelines_settings
,
path:
'settings'
,
only:
[
:show
,
:update
]
end
member
do
post
:cancel
post
:retry
end
end
resources
:environments
resource
:cycle_analytics
,
only:
[
:show
]
resources
:builds
,
only:
[
:index
,
:show
],
constraints:
{
id:
/\d+/
}
do
collection
do
post
:cancel_all
resources
:artifacts
,
only:
[]
do
collection
do
get
:latest_succeeded
,
path:
'*ref_name_and_path'
,
format:
false
end
end
end
member
do
get
:status
post
:cancel
post
:retry
post
:play
post
:erase
get
:trace
get
:raw
end
resource
:artifacts
,
only:
[]
do
get
:download
get
:browse
,
path:
'browse(/*path)'
,
format:
false
get
:file
,
path:
'file/*path'
,
format:
false
post
:keep
end
end
resources
:hooks
,
only:
[
:index
,
:create
,
:destroy
],
constraints:
{
id:
/\d+/
}
do
member
do
get
:test
end
end
resources
:container_registry
,
only:
[
:index
,
:destroy
],
constraints:
{
id:
Gitlab
::
Regex
.
container_registry_reference_regex
}
resources
:milestones
,
constraints:
{
id:
/\d+/
}
do
member
do
put
:sort_issues
put
:sort_merge_requests
end
end
resources
:labels
,
except:
[
:show
],
constraints:
{
id:
/\d+/
}
do
collection
do
post
:generate
post
:set_priorities
end
member
do
post
:toggle_subscription
delete
:remove_priority
end
end
resources
:issues
,
concerns: :awardable
,
constraints:
{
id:
/\d+/
}
do
member
do
post
:toggle_subscription
post
:mark_as_spam
get
:referenced_merge_requests
get
:related_branches
get
:can_create_branch
end
collection
do
post
:bulk_update
end
end
resources
:project_members
,
except:
[
:show
,
:new
,
:edit
],
constraints:
{
id:
/[a-zA-Z.\/0-9_\-#%+]+/
},
concerns: :access_requestable
do
collection
do
delete
:leave
# Used for import team
# from another project
get
:import
post
:apply_import
end
member
do
post
:resend_invite
end
end
resources
:group_links
,
only:
[
:index
,
:create
,
:update
,
:destroy
],
constraints:
{
id:
/\d+/
}
resources
:notes
,
only:
[
:index
,
:create
,
:destroy
,
:update
],
concerns: :awardable
,
constraints:
{
id:
/\d+/
}
do
member
do
delete
:delete_attachment
post
:resolve
delete
:resolve
,
action: :unresolve
end
end
resource
:board
,
only:
[
:show
]
do
scope
module: :boards
do
resources
:issues
,
only:
[
:update
]
resources
:lists
,
only:
[
:index
,
:create
,
:update
,
:destroy
]
do
collection
do
post
:generate
end
resources
:issues
,
only:
[
:index
]
end
end
end
resources
:todos
,
only:
[
:create
]
resources
:uploads
,
only:
[
:create
]
do
collection
do
get
":secret/:filename"
,
action: :show
,
as: :show
,
constraints:
{
filename:
/[^\/]+/
}
end
end
resources
:runners
,
only:
[
:index
,
:edit
,
:update
,
:destroy
,
:show
]
do
member
do
get
:resume
get
:pause
end
collection
do
post
:toggle_shared_runners
end
end
resources
:runner_projects
,
only:
[
:create
,
:destroy
]
resources
:badges
,
only:
[
:index
]
do
collection
do
scope
'*ref'
,
constraints:
{
ref:
Gitlab
::
Regex
.
git_reference_regex
}
do
constraints
format:
/svg/
do
get
:build
get
:coverage
end
end
end
end
end
end
end
=======
draw
:import
draw
:uploads
draw
:explore
...
...
@@ -876,7 +83,6 @@ Rails.application.routes.draw do
draw
:group
draw
:user
draw
:project
>>>>>>>
master
# Get all keys of user
get
':username.keys'
=>
'profiles/keys#get_keys'
,
constraints:
{
username:
/.*/
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment