Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
0003830e25f4
Commit
15c1017c
authored
Dec 04, 2018
by
Shinya Maeda
Browse files
Merge branch 'master-ce' into check-unique-values-of-pipeline-enum
parents
1705cc204e5a
cb67b1977282
Changes
94
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
0003830e
...
...
@@ -2,6 +2,22 @@
documentation
](
doc/development/changelog.md
)
for instructions on adding your own
entry.
## 11.5.2 (2018-12-03)
### Removed (1 change)
-
Removed Site Statistics optimization as it was causing problems. !23314
### Fixed (6 changes, 1 of them is from the community)
-
Display impersonation token value only after creation. !22916
-
Fix not render emoji in filter dropdown. !23112 (Hiroyuki Sato)
-
Fixes stuck tooltip on stop env button. !23244
-
Correctly handle data-loss scenarios when encrypting columns. !23306
-
Clear BatchLoader context between Sidekiq jobs. !23308
-
Fix handling of filenames with hash characters in tree view. !23368
## 11.5.1 (2018-11-26)
### Security (17 changes)
...
...
@@ -287,6 +303,14 @@ entry.
-
Disables stop environment button while the deploy is in progress.
## 11.4.9 (2018-12-03)
### Fixed (2 changes)
-
Display impersonation token value only after creation. !22916
-
Correctly handle data-loss scenarios when encrypting columns. !23306
## 11.4.8 (2018-11-27)
### Security (24 changes)
...
...
CONTRIBUTING.md
View file @
0003830e
...
...
@@ -181,4 +181,4 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has
## Style guides
This
[
documentation
](
doc/development/contributing/des
ign
.md
)
has been moved.
This
[
documentation
](
doc/development/contributing/
style_gui
des.md
)
has been moved.
Gemfile
View file @
0003830e
...
...
@@ -82,7 +82,7 @@ gem 'validates_hostname', '~> 1.0.6'
gem
'
browser
'
,
'~> 2.5'
# GPG
gem
'
gpgme
'
gem
'
gpgme
'
,
'~> 2.0.18'
# LDAP Auth
# GitLab fork with several improvements to original library. For full list of changes
...
...
Gemfile.lock
View file @
0003830e
...
...
@@ -313,8 +313,8 @@ GEM
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (~> 0.7)
gpgme (2.0.1
3
)
mini_portile2 (~> 2.
1
)
gpgme (2.0.1
8
)
mini_portile2 (~> 2.
3
)
grape (1.1.0)
activesupport
builder
...
...
@@ -1016,7 +1016,7 @@ DEPENDENCIES
gon (~> 6.2)
google-api-client (~> 0.23)
google-protobuf (~> 3.6)
gpgme
gpgme
(~> 2.0.18)
grape (~> 1.1.0)
grape-entity (~> 0.7.1)
grape-path-helpers (~> 1.0)
...
...
Gemfile.rails4.lock
View file @
0003830e
...
...
@@ -310,8 +310,8 @@ GEM
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (~> 0.7)
gpgme (2.0.1
3
)
mini_portile2 (~> 2.
1
)
gpgme (2.0.1
8
)
mini_portile2 (~> 2.
3
)
grape (1.1.0)
activesupport
builder
...
...
@@ -1007,7 +1007,7 @@ DEPENDENCIES
gon (~> 6.2)
google-api-client (~> 0.23)
google-protobuf (~> 3.6)
gpgme
gpgme
(~> 2.0.18)
grape (~> 1.1.0)
grape-entity (~> 0.7.1)
grape-path-helpers (~> 1.0)
...
...
app/assets/javascripts/filtered_search/issuable_filtered_search_token_keys.js
View file @
0003830e
...
...
@@ -88,10 +88,15 @@ export const conditions = [
value
:
'
started
'
,
},
{
url
:
'
label_name[]=No
+Label
'
,
url
:
'
label_name[]=No
ne
'
,
tokenKey
:
'
label
'
,
value
:
'
none
'
,
},
{
url
:
'
label_name[]=Any
'
,
tokenKey
:
'
any
'
,
value
:
'
any
'
,
},
{
url
:
'
my_reaction_emoji=None
'
,
tokenKey
:
'
my-reaction
'
,
...
...
app/assets/javascripts/ide/components/panes/right.vue
View file @
0003830e
...
...
@@ -105,7 +105,7 @@ export default {
:key=
"tabView.name"
class=
"h-100"
>
<component
:is=
"tabView.name"
/>
<component
:is=
"
tabView.component ||
tabView.name"
/>
</div>
</resizable-panel>
<nav
class=
"ide-activity-bar"
>
...
...
app/assets/javascripts/mirrors/mirror_repos.js
View file @
0003830e
...
...
@@ -30,6 +30,7 @@ export default class MirrorRepos {
this
.
$password
.
on
(
'
input.updateUrl
'
,
()
=>
this
.
debouncedUpdateUrl
());
this
.
initMirrorSSH
();
this
.
updateProtectedBranches
();
}
initMirrorSSH
()
{
...
...
app/assets/javascripts/pipelines/components/graph/graph_component.vue
View file @
0003830e
...
...
@@ -18,23 +18,19 @@ export default {
required
:
true
,
},
},
computed
:
{
graph
()
{
return
this
.
pipeline
.
details
&&
this
.
pipeline
.
details
.
stages
;
},
},
methods
:
{
capitalizeStageName
(
name
)
{
const
escapedName
=
_
.
escape
(
name
);
return
escapedName
.
charAt
(
0
).
toUpperCase
()
+
escapedName
.
slice
(
1
);
},
isFirstColumn
(
index
)
{
return
index
===
0
;
},
stageConnectorClass
(
index
,
stage
)
{
let
className
;
...
...
@@ -48,7 +44,6 @@ export default {
return
className
;
},
refreshPipelineGraph
()
{
this
.
$emit
(
'
refreshPipelineGraph
'
);
},
...
...
app/assets/javascripts/pipelines/components/graph/job_item.vue
View file @
0003830e
...
...
@@ -84,10 +84,6 @@ export default {
return
textBuilder
.
join
(
'
'
);
},
tooltipBoundary
()
{
return
this
.
dropdownLength
<
5
?
'
viewport
'
:
null
;
},
/**
* Verifies if the provided job has an action path
*
...
...
@@ -108,7 +104,7 @@ export default {
<div
class=
"ci-job-component"
>
<gl-link
v-if=
"status.has_details"
v-gl-tooltip
=
"
{ boundary: tooltipBoundary }"
v-gl-tooltip
:href=
"status.details_path"
:title=
"tooltipText"
:class=
"cssClassJobName"
...
...
app/assets/javascripts/star.js
View file @
0003830e
...
...
@@ -23,11 +23,11 @@ export default class Star {
if
(
isStarred
)
{
$starSpan
.
removeClass
(
'
starred
'
).
text
(
s__
(
'
StarProject|Star
'
));
$startIcon
.
remove
();
$this
.
prepend
(
spriteIcon
(
'
star-o
'
));
$this
.
prepend
(
spriteIcon
(
'
star-o
'
,
'
icon
'
));
}
else
{
$starSpan
.
addClass
(
'
starred
'
).
text
(
__
(
'
Unstar
'
));
$startIcon
.
remove
();
$this
.
prepend
(
spriteIcon
(
'
star
'
));
$this
.
prepend
(
spriteIcon
(
'
star
'
,
'
icon
'
));
}
})
.
catch
(()
=>
Flash
(
'
Star toggle failed. Try again later.
'
));
...
...
app/assets/javascripts/vue_merge_request_widget/components/deployment.vue
View file @
0003830e
...
...
@@ -112,7 +112,7 @@ export default {
</
script
>
<
template
>
<div
class=
"
mr-widget-heading deploy-heading append-bottom-default
"
>
<div
class=
"
deploy-heading
"
>
<div
class=
"ci-widget media"
>
<div
class=
"media-body"
>
<div
class=
"deploy-body"
>
...
...
app/assets/javascripts/vue_merge_request_widget/components/mr_widget_container.vue
0 → 100644
View file @
0003830e
<
template
>
<div
class=
"mr-widget-heading"
>
<div
class=
"mr-widget-content"
><slot
name=
"default"
></slot></div>
<slot
name=
"footer"
></slot>
</div>
</
template
>
app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.vue
View file @
0003830e
...
...
@@ -6,6 +6,7 @@ import Icon from '~/vue_shared/components/icon.vue';
import
clipboardButton
from
'
~/vue_shared/components/clipboard_button.vue
'
;
import
tooltip
from
'
~/vue_shared/directives/tooltip
'
;
import
TooltipOnTruncate
from
'
~/vue_shared/components/tooltip_on_truncate.vue
'
;
import
MrWidgetIcon
from
'
./mr_widget_icon.vue
'
;
export
default
{
name
:
'
MRWidgetHeader
'
,
...
...
@@ -13,6 +14,7 @@ export default {
Icon
,
clipboardButton
,
TooltipOnTruncate
,
MrWidgetIcon
,
},
directives
:
{
tooltip
,
...
...
@@ -76,7 +78,7 @@ export default {
</
script
>
<
template
>
<div
class=
"mr-source-target append-bottom-default"
>
<
div
class=
"git-merge-icon-container append-right-default"
><
icon
name=
"git-merge"
/>
</div>
<
mr-widget-
icon
name=
"git-merge"
/>
<div
class=
"git-merge-container d-flex"
>
<div
class=
"normal"
>
<strong>
...
...
app/assets/javascripts/vue_merge_request_widget/components/mr_widget_icon.vue
0 → 100644
View file @
0003830e
<
script
>
import
Icon
from
'
~/vue_shared/components/icon.vue
'
;
export
default
{
components
:
{
Icon
},
props
:
{
name
:
{
type
:
String
,
required
:
true
,
},
},
};
</
script
>
<
template
>
<div
class=
"circle-icon-container append-right-default"
><icon
:name=
"name"
/></div>
</
template
>
app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline.vue
View file @
0003830e
...
...
@@ -79,67 +79,65 @@ export default {
</
script
>
<
template
>
<div
v-if=
"hasPipeline || hasCIError"
class=
"mr-widget-heading append-bottom-default"
>
<div
class=
"ci-widget media"
>
<template
v-if=
"hasCIError"
>
<div
class=
"add-border ci-status-icon ci-status-icon-failed ci-error
js-ci-error append-right-default"
>
<icon
:size=
"32"
name=
"status_failed_borderless"
/>
</div>
<div
class=
"media-body"
v-html=
"errorText"
></div>
</
template
>
<
template
v-else-if=
"hasPipeline"
>
<a
:href=
"status.details_path"
class=
"align-self-start append-right-default"
>
<ci-icon
:status=
"status"
:size=
"32"
:borderless=
"true"
class=
"add-border"
/>
</a>
<div
class=
"ci-widget-container d-flex"
>
<div
class=
"ci-widget-content"
>
<div
class=
"media-body"
>
<div
class=
"font-weight-bold"
>
Pipeline
<a
:href=
"pipeline.path"
class=
"pipeline-id font-weight-normal pipeline-number"
>
#
{{
pipeline
.
id
}}
</a
>
<div
v-if=
"hasPipeline || hasCIError"
class=
"ci-widget media"
>
<template
v-if=
"hasCIError"
>
<div
class=
"add-border ci-status-icon ci-status-icon-failed ci-error
js-ci-error append-right-default"
>
<icon
:size=
"32"
name=
"status_failed_borderless"
/>
</div>
<div
class=
"media-body"
v-html=
"errorText"
></div>
</
template
>
<
template
v-else-if=
"hasPipeline"
>
<a
:href=
"status.details_path"
class=
"align-self-start append-right-default"
>
<ci-icon
:status=
"status"
:size=
"32"
:borderless=
"true"
class=
"add-border"
/>
</a>
<div
class=
"ci-widget-container d-flex"
>
<div
class=
"ci-widget-content"
>
<div
class=
"media-body"
>
<div
class=
"font-weight-bold"
>
Pipeline
<a
:href=
"pipeline.path"
class=
"pipeline-id font-weight-normal pipeline-number"
>
#
{{
pipeline
.
id
}}
</a
>
{{
pipeline
.
details
.
status
.
label
}}
{{
pipeline
.
details
.
status
.
label
}}
<template
v-if=
"hasCommitInfo"
>
for
<a
:href=
"pipeline.commit.commit_path"
class=
"commit-sha js-commit-link font-weight-normal"
>
{{
pipeline
.
commit
.
short_id
}}
</a
>
on
<tooltip-on-truncate
:title=
"sourceBranch"
truncate-target=
"child"
class=
"label-branch label-truncate"
v-html=
"sourceBranchLink"
/>
</
template
>
</div>
<div
v-if=
"pipeline.coverage"
class=
"coverage"
>
Coverage {{ pipeline.coverage }}%
</div>
<template
v-if=
"hasCommitInfo"
>
for
<a
:href=
"pipeline.commit.commit_path"
class=
"commit-sha js-commit-link font-weight-normal"
>
{{
pipeline
.
commit
.
short_id
}}
</a
>
on
<tooltip-on-truncate
:title=
"sourceBranch"
truncate-target=
"child"
class=
"label-branch label-truncate"
v-html=
"sourceBranchLink"
/>
</
template
>
</div>
<div
v-if=
"pipeline.coverage"
class=
"coverage"
>
Coverage {{ pipeline.coverage }}%
</div>
</div>
<div>
<span
class=
"mr-widget-pipeline-graph"
>
<span
v-if=
"hasStages"
class=
"stage-cell
"
>
<div
v-for=
"(stage, i) in pipeline.details.stages"
:key=
"i
"
class=
"stage-container dropdown js-mini-pipeline-graph mr-widget-pipeline-stages
"
>
<pipeline-stage
:stage=
"stage"
/
>
<
/div
>
</
span
>
<
/
div>
<div
>
<span
class=
"mr-widget-pipeline-graph
"
>
<span
v-if=
"hasStages"
class=
"stage-cell"
>
<div
v-for=
"(stage, i) in pipeline.details.stages
"
:key=
"i
"
class=
"stage-container dropdown js-mini-pipeline-graph mr-widget-pipeline-stages"
>
<
pipeline-stage
:stage=
"stage"
/
>
</
div
>
</span>
</
div
>
</
span
>
</div>
</
template
>
</
div
>
</
div
>
</
template
>
</div>
</template>
app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline_container.vue
0 → 100644
View file @
0003830e
<
script
>
import
Deployment
from
'
./deployment.vue
'
;
import
MrWidgetContainer
from
'
./mr_widget_container.vue
'
;
import
MrWidgetPipeline
from
'
./mr_widget_pipeline.vue
'
;
/**
* Renders the pipeline and related deployments from the store.
*
* | Props | Description
* |---------------|-------------
* | `mr` | This is the mr_widget store
* | `isPostMerge` | If true, show the "post merge" pipeline and deployments
*/
export
default
{
name
:
'
MrWidgetPipelineContainer
'
,
components
:
{
Deployment
,
MrWidgetContainer
,
MrWidgetPipeline
,
},
props
:
{
mr
:
{
type
:
Object
,
required
:
true
,
},
isPostMerge
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
,
},
},
computed
:
{
pipeline
()
{
return
this
.
isPostMerge
?
this
.
mr
.
mergePipeline
:
this
.
mr
.
pipeline
;
},
branch
()
{
return
this
.
isPostMerge
?
this
.
mr
.
targetBranch
:
this
.
mr
.
sourceBranch
;
},
branchLink
()
{
return
this
.
isPostMerge
?
this
.
mr
.
targetBranch
:
this
.
mr
.
sourceBranchLink
;
},
deployments
()
{
return
this
.
isPostMerge
?
this
.
mr
.
postMergeDeployments
:
this
.
mr
.
deployments
;
},
deploymentClass
()
{
return
this
.
isPostMerge
?
'
js-post-deployment
'
:
'
js-pre-deployment
'
;
},
hasDeploymentMetrics
()
{
return
this
.
isPostMerge
;
},
},
};
</
script
>
<
template
>
<mr-widget-container>
<mr-widget-pipeline
:pipeline=
"pipeline"
:ci-status=
"mr.ciStatus"
:has-ci=
"mr.hasCI"
:source-branch=
"branch"
:source-branch-link=
"branchLink"
:troubleshooting-docs-path=
"mr.troubleshootingDocsPath"
/>
<div
v-if=
"deployments.length"
slot=
"footer"
class=
"mr-widget-extension"
>
<deployment
v-for=
"deployment in deployments"
:key=
"deployment.id"
:class=
"deploymentClass"
:deployment=
"deployment"
:show-metrics=
"hasDeploymentMetrics"
/>
</div>
</mr-widget-container>
</
template
>
app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue
View file @
0003830e
...
...
@@ -6,7 +6,7 @@ import SmartInterval from '~/smart_interval';
import
createFlash
from
'
../flash
'
;
import
WidgetHeader
from
'
./components/mr_widget_header.vue
'
;
import
WidgetMergeHelp
from
'
./components/mr_widget_merge_help.vue
'
;
import
WidgetPipeline
from
'
./components/mr_widget_pipeline.vue
'
;
import
Mr
WidgetPipeline
Container
from
'
./components/mr_widget_pipeline
_container
.vue
'
;
import
Deployment
from
'
./components/deployment.vue
'
;
import
WidgetRelatedLinks
from
'
./components/mr_widget_related_links.vue
'
;
import
MergedState
from
'
./components/states/mr_widget_merged.vue
'
;
...
...
@@ -44,7 +44,7 @@ export default {
components
:
{
'
mr-widget-header
'
:
WidgetHeader
,
'
mr-widget-merge-help
'
:
WidgetMergeHelp
,
'
mr-w
idget
-p
ipeline
'
:
WidgetPipel
ine
,
MrW
idget
P
ipeline
Conta
ine
r
,
Deployment
,
'
mr-widget-related-links
'
:
WidgetRelatedLinks
,
'
mr-widget-merged
'
:
MergedState
,
...
...
@@ -296,23 +296,12 @@ export default {
<
template
>
<div
class=
"mr-state-widget prepend-top-default"
>
<mr-widget-header
:mr=
"mr"
/>
<mr-widget-pipeline
<mr-widget-pipeline
-container
v-if=
"shouldRenderPipelines"
:pipeline=
"mr.pipeline"
:ci-status=
"mr.ciStatus"
:has-ci=
"mr.hasCI"
:source-branch=
"mr.sourceBranch"
:source-branch-link=
"mr.sourceBranchLink"
:troubleshooting-docs-path=
"mr.troubleshootingDocsPath"
class=
"mr-widget-workflow"
:mr=
"mr"
/>
<deployment
v-for=
"deployment in mr.deployments"
:key=
"`pre-merge-deploy-$
{deployment.id}`"
class="js-pre-merge-deploy"
:deployment="deployment"
:show-metrics="false"
/>
<div
class=
"mr-section-container"
>
<div
class=
"mr-section-container mr-widget-workflow"
>
<grouped-test-reports-app
v-if=
"mr.testResultsPath"
class=
"js-reports-container"
...
...
@@ -336,24 +325,11 @@ export default {
</div>
<div
v-if=
"shouldRenderMergeHelp"
class=
"mr-widget-footer"
><mr-widget-merge-help
/></div>
</div>
<template
v-if=
"shouldRenderMergedPipeline"
>
<mr-widget-pipeline
class=
"js-post-merge-pipeline prepend-top-default"
:pipeline=
"mr.mergePipeline"
:ci-status=
"mr.ciStatus"
:has-ci=
"mr.hasCI"
:source-branch=
"mr.targetBranch"
:source-branch-link=
"mr.targetBranch"
:troubleshooting-docs-path=
"mr.troubleshootingDocsPath"
/>
<deployment
v-for=
"postMergeDeployment in mr.postMergeDeployments"
:key=
"`post-merge-deploy-$
{postMergeDeployment.id}`"
:deployment="postMergeDeployment"
:show-metrics="true"
class="js-post-deployment"
/>
</
template
>
<mr-widget-pipeline-container
v-if=
"shouldRenderMergedPipeline"
class=
"js-post-merge-pipeline mr-widget-workflow"
:mr=
"mr"
:is-post-merge=
"true"
/>
</div>
</
template
>
app/assets/stylesheets/framework.scss
View file @
0003830e
...
...
@@ -6,6 +6,7 @@
@import
'bootstrap_migration'
;
@import
'framework/layout'
;
@import
'framework/alerts'
;
@import
'framework/animations'
;
@import
'framework/vue_transitions'
;
@import
'framework/avatar'
;
...
...
app/assets/stylesheets/framework/alerts.scss
0 → 100644
View file @
0003830e
.alert-tip
{
background-color
:
$theme-gray-100
;
color
:
$theme-gray-900
;
}
Prev
1
2
3
4
5
Next
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