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
56933b33
Commit
56933b33
authored
Oct 12, 2018
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into ce-to-ee-2018-10-12
parents
6ae46053
982aaa04
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
91 additions
and
25 deletions
+91
-25
app/finders/projects_finder.rb
app/finders/projects_finder.rb
+16
-11
app/helpers/preferences_helper.rb
app/helpers/preferences_helper.rb
+25
-11
app/models/deployment.rb
app/models/deployment.rb
+11
-0
app/models/environment.rb
app/models/environment.rb
+2
-0
app/models/user.rb
app/models/user.rb
+1
-1
app/views/layouts/nav/_dashboard.html.haml
app/views/layouts/nav/_dashboard.html.haml
+1
-0
doc/api/events.md
doc/api/events.md
+2
-2
locale/gitlab.pot
locale/gitlab.pot
+3
-0
spec/helpers/preferences_helper_spec.rb
spec/helpers/preferences_helper_spec.rb
+7
-0
spec/models/deployment_spec.rb
spec/models/deployment_spec.rb
+23
-0
No files found.
app/finders/projects_finder.rb
View file @
56933b33
...
...
@@ -42,17 +42,7 @@ class ProjectsFinder < UnionFinder
init_collection
end
collection
=
by_ids
(
collection
)
collection
=
by_personal
(
collection
)
collection
=
by_starred
(
collection
)
collection
=
by_trending
(
collection
)
collection
=
by_visibilty_level
(
collection
)
collection
=
by_tags
(
collection
)
collection
=
by_search
(
collection
)
collection
=
by_archived
(
collection
)
collection
=
by_custom_attributes
(
collection
)
collection
=
by_deleted_status
(
collection
)
collection
=
filter_projects
(
collection
)
sort
(
collection
)
end
...
...
@@ -66,6 +56,21 @@ class ProjectsFinder < UnionFinder
end
end
# EE would override this to add more filters
def
filter_projects
(
collection
)
collection
=
by_ids
(
collection
)
collection
=
by_personal
(
collection
)
collection
=
by_starred
(
collection
)
collection
=
by_trending
(
collection
)
collection
=
by_visibilty_level
(
collection
)
collection
=
by_tags
(
collection
)
collection
=
by_search
(
collection
)
collection
=
by_archived
(
collection
)
collection
=
by_custom_attributes
(
collection
)
collection
=
by_deleted_status
(
collection
)
collection
end
# rubocop: disable CodeReuse/ActiveRecord
def
collection_with_user
if
owned_projects?
...
...
app/helpers/preferences_helper.rb
View file @
56933b33
...
...
@@ -18,22 +18,20 @@ module PreferencesHelper
groups:
_
(
"Your Groups"
),
todos:
_
(
"Your Todos"
),
issues:
_
(
"Assigned Issues"
),
merge_requests:
_
(
"Assigned Merge Requests"
)
merge_requests:
_
(
"Assigned Merge Requests"
),
operations:
_
(
"Operations Dashboard"
)
}.
with_indifferent_access
.
freeze
# Returns an Array usable by a select field for more user-friendly option text
def
dashboard_choices
d
efined
=
User
.
dashboard
s
d
ashboards
=
User
.
dashboards
.
key
s
if
defined
.
size
!=
DASHBOARD_CHOICES
.
size
# Ensure that anyone adding new options updates this method too
raise
"`User` defines
#{
defined
.
size
}
dashboard choices,"
\
" but `DASHBOARD_CHOICES` defined
#{
DASHBOARD_CHOICES
.
size
}
."
else
defined
.
map
do
|
key
,
_
|
# Use `fetch` so `KeyError` gets raised when a key is missing
[
DASHBOARD_CHOICES
.
fetch
(
key
),
key
]
end
validate_dashboard_choices!
(
dashboards
)
dashboards
-=
excluded_dashboard_choices
dashboards
.
map
do
|
key
|
# Use `fetch` so `KeyError` gets raised when a key is missing
[
DASHBOARD_CHOICES
.
fetch
(
key
),
key
]
end
end
...
...
@@ -52,4 +50,20 @@ module PreferencesHelper
def
user_color_scheme
Gitlab
::
ColorSchemes
.
for_user
(
current_user
).
css_class
end
private
# Ensure that anyone adding new options updates `DASHBOARD_CHOICES` too
def
validate_dashboard_choices!
(
user_dashboards
)
if
user_dashboards
.
size
!=
DASHBOARD_CHOICES
.
size
raise
"`User` defines
#{
user_dashboards
.
size
}
dashboard choices,"
\
" but `DASHBOARD_CHOICES` defined
#{
DASHBOARD_CHOICES
.
size
}
."
end
end
# List of dashboard choice to be excluded from CE.
# EE would override this.
def
excluded_dashboard_choices
[
'operations'
]
end
end
app/models/deployment.rb
View file @
56933b33
...
...
@@ -19,6 +19,17 @@ class Deployment < ActiveRecord::Base
after_create
:create_ref
after_create
:invalidate_cache
scope
:for_environment
,
->
(
environment
)
{
where
(
environment_id:
environment
)
}
def
self
.
last_for_environment
(
environment
)
ids
=
self
.
for_environment
(
environment
)
.
select
(
'MAX(id) AS id'
)
.
group
(
:environment_id
)
.
map
(
&
:id
)
find
(
ids
)
end
def
commit
project
.
commit
(
sha
)
end
...
...
app/models/environment.rb
View file @
56933b33
...
...
@@ -50,6 +50,8 @@ class Environment < ActiveRecord::Base
order
(
Gitlab
::
Database
.
nulls_first_order
(
"(
#{
max_deployment_id_sql
}
)"
,
'ASC'
))
end
scope
:in_review_folder
,
->
{
where
(
environment_type:
"review"
)
}
scope
:for_name
,
->
(
name
)
{
where
(
name:
name
)
}
scope
:for_project
,
->
(
project
)
{
where
(
project_id:
project
)
}
state_machine
:state
,
initial: :available
do
event
:start
do
...
...
app/models/user.rb
View file @
56933b33
...
...
@@ -219,7 +219,7 @@ class User < ActiveRecord::Base
# User's Dashboard preference
# Note: When adding an option, it MUST go on the end of the array.
enum
dashboard:
[
:projects
,
:stars
,
:project_activity
,
:starred_project_activity
,
:groups
,
:todos
,
:issues
,
:merge_requests
]
enum
dashboard:
[
:projects
,
:stars
,
:project_activity
,
:starred_project_activity
,
:groups
,
:todos
,
:issues
,
:merge_requests
,
:operations
]
# User's Project preference
# Note: When adding an option, it MUST go on the end of the array.
...
...
app/views/layouts/nav/_dashboard.html.haml
View file @
56933b33
...
...
@@ -66,6 +66,7 @@
-
if
Gitlab
::
Sherlock
.
enabled?
||
can?
(
current_user
,
:read_instance_statistics
)
%li
.line-separator.d-none.d-sm-block
=
render_if_exists
'dashboard/operations/nav_link'
-
if
can?
(
current_user
,
:read_instance_statistics
)
=
nav_link
(
controller:
[
:conversational_development_index
,
:cohorts
])
do
=
link_to
instance_statistics_root_path
,
title:
_
(
'Instance Statistics'
),
aria:
{
label:
_
(
'Instance Statistics'
)
},
data:
{
toggle:
'tooltip'
,
placement:
'bottom'
,
container:
'body'
}
do
...
...
doc/api/events.md
View file @
56933b33
...
...
@@ -71,7 +71,7 @@ Parameters:
Example request:
```
curl --header "PRIVATE-TOKEN 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/events&target_type=issue&action=created&after=2017-01-31&before=2017-03-01
curl --header "PRIVATE-TOKEN
:
9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/events&target_type=issue&action=created&after=2017-01-31&before=2017-03-01
```
Example response:
...
...
@@ -276,7 +276,7 @@ Parameters:
Example request:
```
curl --header "PRIVATE-TOKEN 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/:project_id/events&target_type=issue&action=created&after=2017-01-31&before=2017-03-01
curl --header "PRIVATE-TOKEN
:
9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/:project_id/events&target_type=issue&action=created&after=2017-01-31&before=2017-03-01
```
Example response:
...
...
locale/gitlab.pot
View file @
56933b33
...
...
@@ -5493,6 +5493,9 @@ msgstr ""
msgid "Operations"
msgstr ""
msgid "Operations Dashboard"
msgstr ""
msgid "Optionally, you can %{link_to_customize} how FogBugz email addresses and usernames are imported into GitLab."
msgstr ""
...
...
spec/helpers/preferences_helper_spec.rb
View file @
56933b33
...
...
@@ -2,6 +2,13 @@ require 'spec_helper'
describe
PreferencesHelper
do
describe
'#dashboard_choices'
do
let
(
:user
)
{
build
(
:user
)
}
before
do
allow
(
helper
).
to
receive
(
:current_user
).
and_return
(
user
)
allow
(
helper
).
to
receive
(
:can?
).
and_return
(
false
)
end
it
'raises an exception when defined choices may be missing'
do
expect
(
User
).
to
receive
(
:dashboards
).
and_return
(
foo:
'foo'
)
expect
{
helper
.
dashboard_choices
}.
to
raise_error
(
RuntimeError
)
...
...
spec/models/deployment_spec.rb
View file @
56933b33
...
...
@@ -39,6 +39,29 @@ describe Deployment do
end
end
describe
'scopes'
do
describe
'last_for_environment'
do
let
(
:production
)
{
create
(
:environment
)
}
let
(
:staging
)
{
create
(
:environment
)
}
let
(
:testing
)
{
create
(
:environment
)
}
let!
(
:deployments
)
do
[
create
(
:deployment
,
environment:
production
),
create
(
:deployment
,
environment:
staging
),
create
(
:deployment
,
environment:
production
)
]
end
it
'retrieves last deployments for environments'
do
last_deployments
=
described_class
.
last_for_environment
([
staging
,
production
,
testing
])
expect
(
last_deployments
.
size
).
to
eq
(
2
)
expect
(
last_deployments
).
to
eq
(
deployments
.
last
(
2
))
end
end
end
describe
'#includes_commit?'
do
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:environment
)
{
create
(
:environment
,
project:
project
)
}
...
...
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