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
eb7390ed
Commit
eb7390ed
authored
Nov 25, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add latest changes from gitlab-org/gitlab@master
parent
801ced25
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
76 additions
and
41 deletions
+76
-41
app/helpers/labels_helper.rb
app/helpers/labels_helper.rb
+2
-2
app/models/concerns/analytics/cycle_analytics/stage.rb
app/models/concerns/analytics/cycle_analytics/stage.rb
+1
-0
app/views/shared/issuable/_sidebar.html.haml
app/views/shared/issuable/_sidebar.html.haml
+4
-4
app/views/shared/snippets/_header.html.haml
app/views/shared/snippets/_header.html.haml
+2
-2
changelogs/unreleased/bvl-remove-cleanup-feature-flag.yml
changelogs/unreleased/bvl-remove-cleanup-feature-flag.yml
+6
-0
db/migrate/20191124150431_change_label_id_index_to_include_action_on_label_events.rb
...hange_label_id_index_to_include_action_on_label_events.rb
+21
-0
db/schema.rb
db/schema.rb
+2
-2
lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb
...lab/analytics/cycle_analytics/stage_events/stage_event.rb
+3
-1
lib/gitlab/gpg.rb
lib/gitlab/gpg.rb
+3
-4
qa/qa/page/dashboard/snippet/show.rb
qa/qa/page/dashboard/snippet/show.rb
+4
-8
qa/qa/page/issuable/sidebar.rb
qa/qa/page/issuable/sidebar.rb
+7
-6
qa/qa/page/merge_request/show.rb
qa/qa/page/merge_request/show.rb
+2
-3
spec/lib/gitlab/gpg_spec.rb
spec/lib/gitlab/gpg_spec.rb
+19
-9
No files found.
app/helpers/labels_helper.rb
View file @
eb7390ed
...
@@ -47,11 +47,11 @@ module LabelsHelper
...
@@ -47,11 +47,11 @@ module LabelsHelper
end
end
end
end
def
render_label
(
label
,
tooltip:
true
,
link:
nil
,
css:
nil
)
def
render_label
(
label
,
tooltip:
true
,
link:
nil
,
css:
nil
,
dataset:
nil
)
# if scoped label is used then EE wraps label tag with scoped label
# if scoped label is used then EE wraps label tag with scoped label
# doc link
# doc link
html
=
render_colored_label
(
label
,
tooltip:
tooltip
)
html
=
render_colored_label
(
label
,
tooltip:
tooltip
)
html
=
link_to
(
html
,
link
,
class:
css
)
if
link
html
=
link_to
(
html
,
link
,
class:
css
,
data:
dataset
)
if
link
html
html
end
end
...
...
app/models/concerns/analytics/cycle_analytics/stage.rb
View file @
eb7390ed
...
@@ -26,6 +26,7 @@ module Analytics
...
@@ -26,6 +26,7 @@ module Analytics
alias_attribute
:custom_stage?
,
:custom
alias_attribute
:custom_stage?
,
:custom
scope
:default_stages
,
->
{
where
(
custom:
false
)
}
scope
:default_stages
,
->
{
where
(
custom:
false
)
}
scope
:ordered
,
->
{
order
(
:relative_position
,
:id
)
}
scope
:ordered
,
->
{
order
(
:relative_position
,
:id
)
}
scope
:for_list
,
->
{
includes
(
:start_event_label
,
:end_event_label
).
ordered
}
end
end
def
parent
=
(
_
)
def
parent
=
(
_
)
...
...
app/views/shared/issuable/_sidebar.html.haml
View file @
eb7390ed
...
@@ -30,10 +30,10 @@
...
@@ -30,10 +30,10 @@
=
render_if_exists
'shared/issuable/sidebar_item_epic'
,
issuable_sidebar:
issuable_sidebar
=
render_if_exists
'shared/issuable/sidebar_item_epic'
,
issuable_sidebar:
issuable_sidebar
-
milestone
=
issuable_sidebar
[
:milestone
]
||
{}
-
milestone
=
issuable_sidebar
[
:milestone
]
||
{}
.block.milestone
.block.milestone
{
data:
{
qa_selector:
'milestone_block'
}
}
.sidebar-collapsed-icon.has-tooltip
{
title:
sidebar_milestone_tooltip_label
(
milestone
),
data:
{
container:
'body'
,
html:
'true'
,
placement:
'left'
,
boundary:
'viewport'
}
}
.sidebar-collapsed-icon.has-tooltip
{
title:
sidebar_milestone_tooltip_label
(
milestone
),
data:
{
container:
'body'
,
html:
'true'
,
placement:
'left'
,
boundary:
'viewport'
}
}
=
icon
(
'clock-o'
,
'aria-hidden'
:
'true'
)
=
icon
(
'clock-o'
,
'aria-hidden'
:
'true'
)
%span
.milestone-title.collapse-truncated-title
%span
.milestone-title.collapse-truncated-title
{
data:
{
qa_selector:
'milestone_title'
}
}
-
if
milestone
.
present?
-
if
milestone
.
present?
=
milestone
[
:title
]
=
milestone
[
:title
]
-
else
-
else
...
@@ -107,10 +107,10 @@
...
@@ -107,10 +107,10 @@
=
icon
(
'spinner spin'
,
class:
'hidden block-loading'
,
'aria-hidden'
:
'true'
)
=
icon
(
'spinner spin'
,
class:
'hidden block-loading'
,
'aria-hidden'
:
'true'
)
-
if
can_edit_issuable
-
if
can_edit_issuable
=
link_to
_
(
'Edit'
),
'#'
,
class:
'js-sidebar-dropdown-toggle edit-link qa-edit-link-labels float-right'
,
data:
{
track_label:
"right_sidebar"
,
track_property:
"labels"
,
track_event:
"click_edit_button"
,
track_value:
""
}
=
link_to
_
(
'Edit'
),
'#'
,
class:
'js-sidebar-dropdown-toggle edit-link qa-edit-link-labels float-right'
,
data:
{
track_label:
"right_sidebar"
,
track_property:
"labels"
,
track_event:
"click_edit_button"
,
track_value:
""
}
.value.issuable-show-labels.dont-hide.hide-collapsed
.qa-labels-block
{
class:
(
"has-labels"
if
selected_labels
.
any?
)
}
.value.issuable-show-labels.dont-hide.hide-collapsed
{
class:
(
"has-labels"
if
selected_labels
.
any?
),
data:
{
qa_selector:
'labels_block'
}
}
-
if
selected_labels
.
any?
-
if
selected_labels
.
any?
-
selected_labels
.
each
do
|
label_hash
|
-
selected_labels
.
each
do
|
label_hash
|
=
render_label
(
label_from_hash
(
label_hash
).
present
(
issuable_subject:
nil
),
link:
sidebar_label_filter_path
(
issuable_sidebar
[
:project_issuables_path
],
label_hash
[
:title
]))
=
render_label
(
label_from_hash
(
label_hash
).
present
(
issuable_subject:
nil
),
link:
sidebar_label_filter_path
(
issuable_sidebar
[
:project_issuables_path
],
label_hash
[
:title
])
,
dataset:
{
qa_selector:
'label'
,
qa_label_name:
label_hash
[
:title
]
}
)
-
else
-
else
%span
.no-value
%span
.no-value
=
_
(
'None'
)
=
_
(
'None'
)
...
...
app/views/shared/snippets/_header.html.haml
View file @
eb7390ed
...
@@ -17,11 +17,11 @@
...
@@ -17,11 +17,11 @@
=
render
"snippets/actions"
=
render
"snippets/actions"
.snippet-header.limited-header-width
.snippet-header.limited-header-width
%h2
.snippet-title.prepend-top-0.mb-3
.qa-snippet-title
%h2
.snippet-title.prepend-top-0.mb-3
{
data:
{
qa_selector:
'snippet_title'
}
}
=
markdown_field
(
@snippet
,
:title
)
=
markdown_field
(
@snippet
,
:title
)
-
if
@snippet
.
description
.
present?
-
if
@snippet
.
description
.
present?
.description
.qa-snippet-description
.description
{
data:
{
qa_selector:
'snippet_description'
}
}
.md
.md
=
markdown_field
(
@snippet
,
:description
)
=
markdown_field
(
@snippet
,
:description
)
%textarea
.hidden.js-task-list-field
%textarea
.hidden.js-task-list-field
...
...
changelogs/unreleased/bvl-remove-cleanup-feature-flag.yml
0 → 100644
View file @
eb7390ed
---
title
:
Try longer to clean up after using a gpg-keychain and raise exption if the
cleanup fails
merge_request
:
20718
author
:
type
:
fixed
db/migrate/20191124150431_change_label_id_index_to_include_action_on_label_events.rb
0 → 100644
View file @
eb7390ed
# frozen_string_literal: true
class
ChangeLabelIdIndexToIncludeActionOnLabelEvents
<
ActiveRecord
::
Migration
[
5.2
]
include
Gitlab
::
Database
::
MigrationHelpers
DOWNTIME
=
false
disable_ddl_transaction!
def
up
add_concurrent_index
(
:resource_label_events
,
%I[label_id action]
)
remove_concurrent_index
(
:resource_label_events
,
:label_id
)
end
def
down
add_concurrent_index
(
:resource_label_events
,
:label_id
)
remove_concurrent_index
(
:resource_label_events
,
%I[label_id action]
)
end
end
db/schema.rb
View file @
eb7390ed
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
#
#
# It's strongly recommended that you check this file into your version control system.
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
2019_11_
19_023952
)
do
ActiveRecord
::
Schema
.
define
(
version:
2019_11_
24_150431
)
do
# These are extensions that must be enabled in order to support this database
# These are extensions that must be enabled in order to support this database
enable_extension
"pg_trgm"
enable_extension
"pg_trgm"
...
@@ -3477,7 +3477,7 @@ ActiveRecord::Schema.define(version: 2019_11_19_023952) do
...
@@ -3477,7 +3477,7 @@ ActiveRecord::Schema.define(version: 2019_11_19_023952) do
t
.
text
"reference_html"
t
.
text
"reference_html"
t
.
index
[
"epic_id"
],
name:
"index_resource_label_events_on_epic_id"
t
.
index
[
"epic_id"
],
name:
"index_resource_label_events_on_epic_id"
t
.
index
[
"issue_id"
],
name:
"index_resource_label_events_on_issue_id"
t
.
index
[
"issue_id"
],
name:
"index_resource_label_events_on_issue_id"
t
.
index
[
"label_id"
],
name:
"index_resource_label_events_on_label_id
"
t
.
index
[
"label_id"
,
"action"
],
name:
"index_resource_label_events_on_label_id_and_action
"
t
.
index
[
"merge_request_id"
],
name:
"index_resource_label_events_on_merge_request_id"
t
.
index
[
"merge_request_id"
],
name:
"index_resource_label_events_on_merge_request_id"
t
.
index
[
"user_id"
],
name:
"index_resource_label_events_on_user_id"
t
.
index
[
"user_id"
],
name:
"index_resource_label_events_on_user_id"
end
end
...
...
lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb
View file @
eb7390ed
...
@@ -8,6 +8,8 @@ module Gitlab
...
@@ -8,6 +8,8 @@ module Gitlab
class
StageEvent
class
StageEvent
include
Gitlab
::
CycleAnalytics
::
MetricsTables
include
Gitlab
::
CycleAnalytics
::
MetricsTables
delegate
:label_based?
,
to: :class
def
initialize
(
params
)
def
initialize
(
params
)
@params
=
params
@params
=
params
end
end
...
@@ -35,7 +37,7 @@ module Gitlab
...
@@ -35,7 +37,7 @@ module Gitlab
query
query
end
end
def
label_based?
def
self
.
label_based?
false
false
end
end
...
...
lib/gitlab/gpg.rb
View file @
eb7390ed
...
@@ -5,7 +5,7 @@ module Gitlab
...
@@ -5,7 +5,7 @@ module Gitlab
extend
self
extend
self
CleanupError
=
Class
.
new
(
StandardError
)
CleanupError
=
Class
.
new
(
StandardError
)
BG_CLEANUP_RUNTIME_S
=
2
BG_CLEANUP_RUNTIME_S
=
10
FG_CLEANUP_RUNTIME_S
=
0.5
FG_CLEANUP_RUNTIME_S
=
0.5
MUTEX
=
Mutex
.
new
MUTEX
=
Mutex
.
new
...
@@ -107,19 +107,18 @@ module Gitlab
...
@@ -107,19 +107,18 @@ module Gitlab
begin
begin
cleanup_tmp_dir
(
tmp_dir
)
cleanup_tmp_dir
(
tmp_dir
)
rescue
CleanupError
=>
e
rescue
CleanupError
=>
e
folder_contents
=
Dir
.
children
(
tmp_dir
)
# This means we left a GPG-agent process hanging. Logging the problem in
# This means we left a GPG-agent process hanging. Logging the problem in
# sentry will make this more visible.
# sentry will make this more visible.
Gitlab
::
Sentry
.
track_exception
(
e
,
Gitlab
::
Sentry
.
track_exception
(
e
,
issue_url:
'https://gitlab.com/gitlab-org/gitlab/issues/20918'
,
issue_url:
'https://gitlab.com/gitlab-org/gitlab/issues/20918'
,
extra:
{
tmp_dir:
tmp_dir
})
extra:
{
tmp_dir:
tmp_dir
,
contents:
folder_contents
})
end
end
tmp_keychains_removed
.
increment
unless
File
.
exist?
(
tmp_dir
)
tmp_keychains_removed
.
increment
unless
File
.
exist?
(
tmp_dir
)
end
end
def
cleanup_tmp_dir
(
tmp_dir
)
def
cleanup_tmp_dir
(
tmp_dir
)
return
FileUtils
.
remove_entry
(
tmp_dir
,
true
)
if
Feature
.
disabled?
(
:gpg_cleanup_retries
)
# Retry when removing the tmp directory failed, as we may run into a
# Retry when removing the tmp directory failed, as we may run into a
# race condition:
# race condition:
# The `gpg-agent` agent process may clean up some files as well while
# The `gpg-agent` agent process may clean up some files as well while
...
...
qa/qa/page/dashboard/snippet/show.rb
View file @
eb7390ed
...
@@ -6,8 +6,8 @@ module QA
...
@@ -6,8 +6,8 @@ module QA
module
Snippet
module
Snippet
class
Show
<
Page
::
Base
class
Show
<
Page
::
Base
view
'app/views/shared/snippets/_header.html.haml'
do
view
'app/views/shared/snippets/_header.html.haml'
do
element
:snippet_title
element
:snippet_title
,
required:
true
element
:snippet_description
element
:snippet_description
,
required:
true
element
:embed_type
element
:embed_type
element
:snippet_box
element
:snippet_box
end
end
...
@@ -21,15 +21,11 @@ module QA
...
@@ -21,15 +21,11 @@ module QA
end
end
def
has_snippet_title?
(
snippet_title
)
def
has_snippet_title?
(
snippet_title
)
within_element
(
:snippet_title
)
do
has_element?
:snippet_title
,
text:
snippet_title
has_text?
(
snippet_title
)
end
end
end
def
has_snippet_description?
(
snippet_description
)
def
has_snippet_description?
(
snippet_description
)
within_element
(
:snippet_description
)
do
has_element?
:snippet_description
,
text:
snippet_description
has_text?
(
snippet_description
)
end
end
end
def
has_embed_type?
(
embed_type
)
def
has_embed_type?
(
embed_type
)
...
...
qa/qa/page/issuable/sidebar.rb
View file @
eb7390ed
...
@@ -5,19 +5,20 @@ module QA
...
@@ -5,19 +5,20 @@ module QA
module
Issuable
module
Issuable
class
Sidebar
<
Page
::
Base
class
Sidebar
<
Page
::
Base
view
'app/views/shared/issuable/_sidebar.html.haml'
do
view
'app/views/shared/issuable/_sidebar.html.haml'
do
element
:labels_block
,
".issuable-show-labels"
# rubocop:disable QA/ElementWithPattern
element
:labels_block
element
:milestones_block
,
'.block.milestone'
# rubocop:disable QA/ElementWithPattern
element
:milestone_block
element
:milestone_title
end
end
def
has_label?
(
label
)
def
has_label?
(
label
)
page
.
within
(
'.issuable-show-labels'
)
do
within_element
(
:labels_block
)
do
!!
find
(
'span'
,
text
:
label
)
has_element?
(
:label
,
label_name
:
label
)
end
end
end
end
def
has_milestone?
(
milestone
)
def
has_milestone?
(
milestone
)
page
.
within
(
'.block.milestone'
)
do
within_element
(
:milestone_block
)
do
!!
find
(
"[href*='/milestones/']"
,
text:
milestone
)
has_element?
(
:milestone_title
,
text:
milestone
)
end
end
end
end
end
end
...
...
qa/qa/page/merge_request/show.rb
View file @
eb7390ed
...
@@ -122,9 +122,8 @@ module QA
...
@@ -122,9 +122,8 @@ module QA
end
end
def
has_label?
(
label
)
def
has_label?
(
label
)
page
.
within
(
element_selector_css
(
:labels_block
))
do
within_element
(
:labels_block
)
do
element
=
find
(
'span'
,
text:
label
)
!!
has_element?
(
:label
,
label_name:
label
)
!
element
.
nil?
end
end
end
end
...
...
spec/lib/gitlab/gpg_spec.rb
View file @
eb7390ed
...
@@ -177,6 +177,25 @@ describe Gitlab::Gpg do
...
@@ -177,6 +177,25 @@ describe Gitlab::Gpg do
end
.
not_to
raise_error
end
.
not_to
raise_error
end
end
it
'tracks an exception when cleaning up the tmp dir fails'
do
expected_exception
=
described_class
::
CleanupError
.
new
(
'cleanup failed'
)
expected_tmp_dir
=
nil
expect
(
described_class
).
to
receive
(
:cleanup_tmp_dir
).
and_raise
(
expected_exception
)
allow
(
Gitlab
::
Sentry
).
to
receive
(
:track_exception
)
described_class
.
using_tmp_keychain
do
expected_tmp_dir
=
described_class
.
current_home_dir
FileUtils
.
touch
(
File
.
join
(
expected_tmp_dir
,
'dummy.file'
))
end
expect
(
Gitlab
::
Sentry
).
to
have_received
(
:track_exception
).
with
(
expected_exception
,
issue_url:
'https://gitlab.com/gitlab-org/gitlab/issues/20918'
,
extra:
{
tmp_dir:
expected_tmp_dir
,
contents:
[
'dummy.file'
]
}
)
end
shared_examples
'multiple deletion attempts of the tmp-dir'
do
|
seconds
|
shared_examples
'multiple deletion attempts of the tmp-dir'
do
|
seconds
|
let
(
:tmp_dir
)
do
let
(
:tmp_dir
)
do
tmp_dir
=
Dir
.
mktmpdir
tmp_dir
=
Dir
.
mktmpdir
...
@@ -211,15 +230,6 @@ describe Gitlab::Gpg do
...
@@ -211,15 +230,6 @@ describe Gitlab::Gpg do
expect
(
File
.
exist?
(
tmp_dir
)).
to
be
false
expect
(
File
.
exist?
(
tmp_dir
)).
to
be
false
end
end
it
'does not retry when the feature flag is disabled'
do
stub_feature_flags
(
gpg_cleanup_retries:
false
)
expect
(
FileUtils
).
to
receive
(
:remove_entry
).
with
(
tmp_dir
,
true
).
and_call_original
expect
(
Retriable
).
not_to
receive
(
:retriable
)
described_class
.
using_tmp_keychain
{}
end
end
end
it_behaves_like
'multiple deletion attempts of the tmp-dir'
,
described_class
::
FG_CLEANUP_RUNTIME_S
it_behaves_like
'multiple deletion attempts of the tmp-dir'
,
described_class
::
FG_CLEANUP_RUNTIME_S
...
...
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