Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
9fe4c279
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9fe4c279
编写于
7月 30, 2018
作者:
G
Grzegorz Bizon
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into 1499-api-endpoint-for-configuring-pull-mirroring-via-http-ce
上级
d138a949
94ea835e
变更
20
显示空白变更内容
内联
并排
Showing
20 changed file
with
62 addition
and
67 deletion
+62
-67
CHANGELOG.md
CHANGELOG.md
+18
-0
app/assets/javascripts/pipelines/components/graph/dropdown_job_component.vue
...pts/pipelines/components/graph/dropdown_job_component.vue
+1
-1
app/assets/javascripts/pipelines/components/graph/job_component.vue
.../javascripts/pipelines/components/graph/job_component.vue
+1
-1
app/models/user.rb
app/models/user.rb
+7
-3
app/views/projects/jobs/_sidebar.html.haml
app/views/projects/jobs/_sidebar.html.haml
+1
-1
changelogs/unreleased/4525-fix-project-indexes.yml
changelogs/unreleased/4525-fix-project-indexes.yml
+0
-5
changelogs/unreleased/47728-mr-api-documentation-changes.yml
changelogs/unreleased/47728-mr-api-documentation-changes.yml
+5
-0
changelogs/unreleased/48817-fix-mr-changes-discussion-navigation.yml
...unreleased/48817-fix-mr-changes-discussion-navigation.yml
+0
-5
changelogs/unreleased/_acet-fix-expanding-context-lines.yml
changelogs/unreleased/_acet-fix-expanding-context-lines.yml
+0
-5
changelogs/unreleased/_acet-fix-mr-autosave.yml
changelogs/unreleased/_acet-fix-mr-autosave.yml
+0
-5
changelogs/unreleased/_acet-fix-outdated-discussions.yml
changelogs/unreleased/_acet-fix-outdated-discussions.yml
+0
-5
changelogs/unreleased/ide-edit-json-files.yml
changelogs/unreleased/ide-edit-json-files.yml
+0
-5
changelogs/unreleased/project-dropdown-list-overflow.yml
changelogs/unreleased/project-dropdown-list-overflow.yml
+0
-5
changelogs/unreleased/sh-support-users-find-by-confirmed-emails.yml
.../unreleased/sh-support-users-find-by-confirmed-emails.yml
+5
-0
changelogs/unreleased/tz-mr-refactor-memory-reduction.yml
changelogs/unreleased/tz-mr-refactor-memory-reduction.yml
+0
-5
changelogs/unreleased/zj-backup-timeout.yml
changelogs/unreleased/zj-backup-timeout.yml
+0
-5
doc/api/merge_requests.md
doc/api/merge_requests.md
+5
-12
spec/javascripts/pipelines/graph/dropdown_job_component_spec.js
...avascripts/pipelines/graph/dropdown_job_component_spec.js
+3
-3
spec/javascripts/pipelines/graph/job_component_spec.js
spec/javascripts/pipelines/graph/job_component_spec.js
+1
-1
spec/models/user_spec.rb
spec/models/user_spec.rb
+15
-0
未找到文件。
CHANGELOG.md
浏览文件 @
9fe4c279
...
@@ -2,6 +2,24 @@
...
@@ -2,6 +2,24 @@
documentation
](
doc/development/changelog.md
)
for instructions on adding your own
documentation
](
doc/development/changelog.md
)
for instructions on adding your own
entry.
entry.
## 11.1.3 (2018-07-27)
### Fixed (8 changes, 1 of them is from the community)
-
Rework some projects table indexes around repository_storage field. !20377
-
Fix navigation to First and Next discussion on MR Changes tab. !20434
-
Fix showing outdated discussions on Changes tab. !20445
-
Fix autosave and ESC confirmation issues for MR discussions. !20569
-
Fix rendering of the context lines in MR diffs page. !20642
-
Don't overflow project/group dropdown results. !20704 (gfyoung)
-
Fixed IDE not opening JSON files. !20798
-
Disable Gitaly timeouts when creating or restoring backups. !20810
### Performance (1 change)
-
Reduces the client side memory footprint on merge requests. !20744
## 11.1.2 (2018-07-26)
## 11.1.2 (2018-07-26)
### Security (4 changes)
### Security (4 changes)
...
...
app/assets/javascripts/pipelines/components/graph/dropdown_job_component.vue
浏览文件 @
9fe4c279
...
@@ -14,7 +14,7 @@ import tooltip from '../../../vue_shared/directives/tooltip';
...
@@ -14,7 +14,7 @@ import tooltip from '../../../vue_shared/directives/tooltip';
* "id": 4256,
* "id": 4256,
* "name": "test",
* "name": "test",
* "status": {
* "status": {
* "icon": "
icon_
status_success",
* "icon": "status_success",
* "text": "passed",
* "text": "passed",
* "label": "passed",
* "label": "passed",
* "group": "success",
* "group": "success",
...
...
app/assets/javascripts/pipelines/components/graph/job_component.vue
浏览文件 @
9fe4c279
...
@@ -13,7 +13,7 @@ import tooltip from '../../../vue_shared/directives/tooltip';
...
@@ -13,7 +13,7 @@ import tooltip from '../../../vue_shared/directives/tooltip';
* "id": 4256,
* "id": 4256,
* "name": "test",
* "name": "test",
* "status": {
* "status": {
* "icon": "
icon_
status_success",
* "icon": "status_success",
* "text": "passed",
* "text": "passed",
* "label": "passed",
* "label": "passed",
* "group": "success",
* "group": "success",
...
...
app/models/user.rb
浏览文件 @
9fe4c279
...
@@ -248,6 +248,7 @@ class User < ActiveRecord::Base
...
@@ -248,6 +248,7 @@ class User < ActiveRecord::Base
scope
:todo_authors
,
->
(
user_id
,
state
)
{
where
(
id:
Todo
.
where
(
user_id:
user_id
,
state:
state
).
select
(
:author_id
))
}
scope
:todo_authors
,
->
(
user_id
,
state
)
{
where
(
id:
Todo
.
where
(
user_id:
user_id
,
state:
state
).
select
(
:author_id
))
}
scope
:order_recent_sign_in
,
->
{
reorder
(
Gitlab
::
Database
.
nulls_last_order
(
'current_sign_in_at'
,
'DESC'
))
}
scope
:order_recent_sign_in
,
->
{
reorder
(
Gitlab
::
Database
.
nulls_last_order
(
'current_sign_in_at'
,
'DESC'
))
}
scope
:order_oldest_sign_in
,
->
{
reorder
(
Gitlab
::
Database
.
nulls_last_order
(
'current_sign_in_at'
,
'ASC'
))
}
scope
:order_oldest_sign_in
,
->
{
reorder
(
Gitlab
::
Database
.
nulls_last_order
(
'current_sign_in_at'
,
'ASC'
))
}
scope
:confirmed
,
->
{
where
.
not
(
confirmed_at:
nil
)
}
def
self
.
with_two_factor_indistinct
def
self
.
with_two_factor_indistinct
joins
(
"LEFT OUTER JOIN u2f_registrations AS u2f ON u2f.user_id = users.id"
)
joins
(
"LEFT OUTER JOIN u2f_registrations AS u2f ON u2f.user_id = users.id"
)
...
@@ -293,14 +294,17 @@ class User < ActiveRecord::Base
...
@@ -293,14 +294,17 @@ class User < ActiveRecord::Base
end
end
# Find a User by their primary email or any associated secondary email
# Find a User by their primary email or any associated secondary email
def
find_by_any_email
(
email
)
def
find_by_any_email
(
email
,
confirmed:
false
)
by_any_email
(
email
).
take
by_any_email
(
email
,
confirmed:
confirmed
).
take
end
end
# Returns a relation containing all the users for the given Email address
# Returns a relation containing all the users for the given Email address
def
by_any_email
(
email
)
def
by_any_email
(
email
,
confirmed:
false
)
users
=
where
(
email:
email
)
users
=
where
(
email:
email
)
users
=
users
.
confirmed
if
confirmed
emails
=
joins
(
:emails
).
where
(
emails:
{
email:
email
})
emails
=
joins
(
:emails
).
where
(
emails:
{
email:
email
})
emails
=
emails
.
confirmed
if
confirmed
union
=
Gitlab
::
SQL
::
Union
.
new
([
users
,
emails
])
union
=
Gitlab
::
SQL
::
Union
.
new
([
users
,
emails
])
from
(
"(
#{
union
.
to_sql
}
)
#{
table_name
}
"
)
from
(
"(
#{
union
.
to_sql
}
)
#{
table_name
}
"
)
...
...
app/views/projects/jobs/_sidebar.html.haml
浏览文件 @
9fe4c279
...
@@ -86,7 +86,7 @@
...
@@ -86,7 +86,7 @@
-
HasStatus
::
ORDERED_STATUSES
.
each
do
|
build_status
|
-
HasStatus
::
ORDERED_STATUSES
.
each
do
|
build_status
|
-
builds
.
select
{
|
build
|
build
.
status
==
build_status
}.
each
do
|
build
|
-
builds
.
select
{
|
build
|
build
.
status
==
build_status
}.
each
do
|
build
|
.build-job
{
class:
sidebar_build_class
(
build
,
@build
),
data:
{
stage:
build
.
stage
}
}
.build-job
{
class:
sidebar_build_class
(
build
,
@build
),
data:
{
stage:
build
.
stage
}
}
-
tooltip
=
sanitize
(
build
.
tooltip_message
)
-
tooltip
=
sanitize
(
build
.
tooltip_message
.
dup
)
=
link_to
(
project_job_path
(
@project
,
build
),
data:
{
toggle:
'tooltip'
,
html:
'true'
,
title:
tooltip
,
container:
'body'
})
do
=
link_to
(
project_job_path
(
@project
,
build
),
data:
{
toggle:
'tooltip'
,
html:
'true'
,
title:
tooltip
,
container:
'body'
})
do
=
sprite_icon
(
'arrow-right'
,
size
:
16
,
css_class:
'icon-arrow-right'
)
=
sprite_icon
(
'arrow-right'
,
size
:
16
,
css_class:
'icon-arrow-right'
)
%span
{
class:
"ci-status-icon-#{build.status}"
}
%span
{
class:
"ci-status-icon-#{build.status}"
}
...
...
changelogs/unreleased/4525-fix-project-indexes.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Rework some projects table indexes around repository_storage field
merge_request
:
20377
author
:
type
:
fixed
changelogs/unreleased/47728-mr-api-documentation-changes.yml
0 → 100644
浏览文件 @
9fe4c279
---
title
:
Remove changes_count from MR API documentation where necessary
merge_request
:
19745
author
:
Jan Beckmann
type
:
fixed
changelogs/unreleased/48817-fix-mr-changes-discussion-navigation.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Fix navigation to First and Next discussion on MR Changes tab
merge_request
:
20434
author
:
type
:
fixed
changelogs/unreleased/_acet-fix-expanding-context-lines.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Fix rendering of the context lines in MR diffs page
merge_request
:
20642
author
:
type
:
fixed
changelogs/unreleased/_acet-fix-mr-autosave.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Fix autosave and ESC confirmation issues for MR discussions
merge_request
:
20569
author
:
type
:
fixed
changelogs/unreleased/_acet-fix-outdated-discussions.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Fix showing outdated discussions on Changes tab
merge_request
:
20445
author
:
type
:
fixed
changelogs/unreleased/ide-edit-json-files.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Fixed IDE not opening JSON files
merge_request
:
20798
author
:
type
:
fixed
changelogs/unreleased/project-dropdown-list-overflow.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Don't overflow project/group dropdown results
merge_request
:
20704
author
:
gfyoung
type
:
fixed
changelogs/unreleased/sh-support-users-find-by-confirmed-emails.yml
0 → 100644
浏览文件 @
9fe4c279
---
title
:
Add support for searching users by confirmed e-mails
merge_request
:
20893
author
:
type
:
other
changelogs/unreleased/tz-mr-refactor-memory-reduction.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Reduces the client side memory footprint on merge requests
merge_request
:
20744
author
:
type
:
performance
changelogs/unreleased/zj-backup-timeout.yml
已删除
100644 → 0
浏览文件 @
d138a949
---
title
:
Disable Gitaly timeouts when creating or restoring backups
merge_request
:
20810
author
:
type
:
fixed
doc/api/merge_requests.md
浏览文件 @
9fe4c279
...
@@ -15,11 +15,6 @@ given state (`opened`, `closed`, `locked`, or `merged`) or all of them (`all`).
...
@@ -15,11 +15,6 @@ given state (`opened`, `closed`, `locked`, or `merged`) or all of them (`all`).
The pagination parameters
`page`
and
`per_page`
can be used to
The pagination parameters
`page`
and
`per_page`
can be used to
restrict the list of merge requests.
restrict the list of merge requests.
**Note**
: the
`changes_count`
value in the response is a string, not an
integer. This is because when an MR has too many changes to display and store,
it will be capped at 1,000. In that case, the API will return the string
`"1000+"`
for the changes count.
```
```
GET /merge_requests
GET /merge_requests
GET /merge_requests?state=opened
GET /merge_requests?state=opened
...
@@ -104,7 +99,6 @@ Parameters:
...
@@ -104,7 +99,6 @@ Parameters:
"sha"
:
"8888888888888888888888888888888888888888"
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
"user_notes_count"
:
1
,
"changes_count"
:
"1"
,
"should_remove_source_branch"
:
true
,
"should_remove_source_branch"
:
true
,
"force_remove_source_branch"
:
false
,
"force_remove_source_branch"
:
false
,
"squash"
:
false
,
"squash"
:
false
,
...
@@ -144,10 +138,6 @@ will be the same. In the case of a merge request from a fork,
...
@@ -144,10 +138,6 @@ will be the same. In the case of a merge request from a fork,
`target_project_id`
and
`project_id`
will be the same and
`target_project_id`
and
`project_id`
will be the same and
`source_project_id`
will be the fork project's ID.
`source_project_id`
will be the fork project's ID.
**Note**
: the
`changes_count`
value in the response is a string, not an
integer. This is because when an MR has too many changes to display and store,
it will be capped at 1,000. In that case, the API will return the string
`"1000+"`
for the changes count.
Parameters:
Parameters:
...
@@ -224,7 +214,6 @@ Parameters:
...
@@ -224,7 +214,6 @@ Parameters:
"sha"
:
"8888888888888888888888888888888888888888"
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
"user_notes_count"
:
1
,
"changes_count"
:
"1"
,
"should_remove_source_branch"
:
true
,
"should_remove_source_branch"
:
true
,
"force_remove_source_branch"
:
false
,
"force_remove_source_branch"
:
false
,
"squash"
:
false
,
"squash"
:
false
,
...
@@ -331,7 +320,6 @@ Parameters:
...
@@ -331,7 +320,6 @@ Parameters:
"sha"
:
"8888888888888888888888888888888888888888"
,
"sha"
:
"8888888888888888888888888888888888888888"
,
"merge_commit_sha"
:
null
,
"merge_commit_sha"
:
null
,
"user_notes_count"
:
1
,
"user_notes_count"
:
1
,
"changes_count"
:
"1"
,
"should_remove_source_branch"
:
true
,
"should_remove_source_branch"
:
true
,
"force_remove_source_branch"
:
false
,
"force_remove_source_branch"
:
false
,
"web_url"
:
"http://example.com/example/example/merge_requests/1"
,
"web_url"
:
"http://example.com/example/example/merge_requests/1"
,
...
@@ -350,6 +338,11 @@ Parameters:
...
@@ -350,6 +338,11 @@ Parameters:
Shows information about a single merge request.
Shows information about a single merge request.
**Note**
: the
`changes_count`
value in the response is a string, not an
integer. This is because when an MR has too many changes to display and store,
it will be capped at 1,000. In that case, the API will return the string
`"1000+"`
for the changes count.
```
```
GET /projects/:id/merge_requests/:merge_request_iid
GET /projects/:id/merge_requests/:merge_request_iid
```
```
...
...
spec/javascripts/pipelines/graph/dropdown_job_component_spec.js
浏览文件 @
9fe4c279
...
@@ -12,7 +12,7 @@ describe('dropdown job component', () => {
...
@@ -12,7 +12,7 @@ describe('dropdown job component', () => {
id
:
4256
,
id
:
4256
,
name
:
'
<img src=x onerror=alert(document.domain)>
'
,
name
:
'
<img src=x onerror=alert(document.domain)>
'
,
status
:
{
status
:
{
icon
:
'
icon_
status_success
'
,
icon
:
'
status_success
'
,
text
:
'
passed
'
,
text
:
'
passed
'
,
label
:
'
passed
'
,
label
:
'
passed
'
,
tooltip
:
'
passed
'
,
tooltip
:
'
passed
'
,
...
@@ -31,7 +31,7 @@ describe('dropdown job component', () => {
...
@@ -31,7 +31,7 @@ describe('dropdown job component', () => {
id
:
4299
,
id
:
4299
,
name
:
'
test
'
,
name
:
'
test
'
,
status
:
{
status
:
{
icon
:
'
icon_
status_success
'
,
icon
:
'
status_success
'
,
text
:
'
passed
'
,
text
:
'
passed
'
,
label
:
'
passed
'
,
label
:
'
passed
'
,
tooltip
:
'
passed
'
,
tooltip
:
'
passed
'
,
...
@@ -50,7 +50,7 @@ describe('dropdown job component', () => {
...
@@ -50,7 +50,7 @@ describe('dropdown job component', () => {
name
:
'
rspec:linux
'
,
name
:
'
rspec:linux
'
,
size
:
2
,
size
:
2
,
status
:
{
status
:
{
icon
:
'
icon_
status_success
'
,
icon
:
'
status_success
'
,
text
:
'
passed
'
,
text
:
'
passed
'
,
label
:
'
passed
'
,
label
:
'
passed
'
,
tooltip
:
'
passed
'
,
tooltip
:
'
passed
'
,
...
...
spec/javascripts/pipelines/graph/job_component_spec.js
浏览文件 @
9fe4c279
...
@@ -169,7 +169,7 @@ describe('pipeline graph job component', () => {
...
@@ -169,7 +169,7 @@ describe('pipeline graph job component', () => {
id
:
4259
,
id
:
4259
,
name
:
'
<img src=x onerror=alert(document.domain)>
'
,
name
:
'
<img src=x onerror=alert(document.domain)>
'
,
status
:
{
status
:
{
icon
:
'
icon_
status_success
'
,
icon
:
'
status_success
'
,
label
:
'
success
'
,
label
:
'
success
'
,
tooltip
:
'
failed
'
,
tooltip
:
'
failed
'
,
},
},
...
...
spec/models/user_spec.rb
浏览文件 @
9fe4c279
...
@@ -949,6 +949,7 @@ describe User do
...
@@ -949,6 +949,7 @@ describe User do
user
=
create
(
:user
,
email:
'foo@example.com'
)
user
=
create
(
:user
,
email:
'foo@example.com'
)
expect
(
described_class
.
find_by_any_email
(
user
.
email
)).
to
eq
user
expect
(
described_class
.
find_by_any_email
(
user
.
email
)).
to
eq
user
expect
(
described_class
.
find_by_any_email
(
user
.
email
,
confirmed:
true
)).
to
eq
user
end
end
it
'finds by secondary email'
do
it
'finds by secondary email'
do
...
@@ -956,11 +957,19 @@ describe User do
...
@@ -956,11 +957,19 @@ describe User do
user
=
email
.
user
user
=
email
.
user
expect
(
described_class
.
find_by_any_email
(
email
.
email
)).
to
eq
user
expect
(
described_class
.
find_by_any_email
(
email
.
email
)).
to
eq
user
expect
(
described_class
.
find_by_any_email
(
email
.
email
,
confirmed:
true
)).
to
eq
user
end
end
it
'returns nil when nothing found'
do
it
'returns nil when nothing found'
do
expect
(
described_class
.
find_by_any_email
(
''
)).
to
be_nil
expect
(
described_class
.
find_by_any_email
(
''
)).
to
be_nil
end
end
it
'returns nil when user is not confirmed'
do
user
=
create
(
:user
,
email:
'foo@example.com'
,
confirmed_at:
nil
)
expect
(
described_class
.
find_by_any_email
(
user
.
email
,
confirmed:
false
)).
to
eq
(
user
)
expect
(
described_class
.
find_by_any_email
(
user
.
email
,
confirmed:
true
)).
to
be_nil
end
end
end
describe
'.by_any_email'
do
describe
'.by_any_email'
do
...
@@ -974,6 +983,12 @@ describe User do
...
@@ -974,6 +983,12 @@ describe User do
expect
(
described_class
.
by_any_email
(
user
.
email
)).
to
eq
([
user
])
expect
(
described_class
.
by_any_email
(
user
.
email
)).
to
eq
([
user
])
end
end
it
'returns a relation of users for confirmed users'
do
user
=
create
(
:user
)
expect
(
described_class
.
by_any_email
(
user
.
email
,
confirmed:
true
)).
to
eq
([
user
])
end
end
end
describe
'.search'
do
describe
'.search'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录