Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
8031be73
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,发现更多精彩内容 >>
提交
8031be73
编写于
7月 03, 2014
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'contributors-api' into 'master'
Contributors api Fixes #1266 See merge request !934
上级
efc6baf7
dacf9f9f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
90 addition
and
1 deletion
+90
-1
app/models/repository.rb
app/models/repository.rb
+21
-0
doc/api/repositories.md
doc/api/repositories.md
+29
-0
lib/api/entities.rb
lib/api/entities.rb
+4
-0
lib/api/repositories.rb
lib/api/repositories.rb
+12
-0
lib/gitlab/contributors.rb
lib/gitlab/contributors.rb
+9
-0
spec/requests/api/repositories_spec.rb
spec/requests/api/repositories_spec.rb
+15
-1
未找到文件。
app/models/repository.rb
浏览文件 @
8031be73
...
...
@@ -242,4 +242,25 @@ class Repository
branches
end
end
def
contributors
log
=
graph_log
.
group_by
{
|
i
|
i
[
:author_email
]
}
log
.
map
do
|
email
,
contributions
|
contributor
=
Gitlab
::
Contributor
.
new
contributor
.
email
=
email
contributions
.
each
do
|
contribution
|
if
contributor
.
name
.
blank?
contributor
.
name
=
contribution
[
:author_name
]
end
contributor
.
commits
+=
1
contributor
.
additions
+=
contribution
[
:additions
]
||
0
contributor
.
deletions
+=
contribution
[
:deletions
]
||
0
end
contributor
end
end
end
doc/api/repositories.md
浏览文件 @
8031be73
...
...
@@ -220,3 +220,32 @@ Response:
"compare_same_ref"
:
false
}
```
## Contributors
Get repository contributors list
```
GET /projects/:id/repository/contributors
```
Parameters:
+
`id`
(required) - The ID of a project
Response:
```
[{
"name": "Dmitriy Zaporozhets",
"email": "dmitriy.zaporozhets@gmail.com",
"commits": 117,
"additions": 2097,
"deletions": 517
}, {
"name": "Jacob Vosmaer",
"email": "contact@jacobvosmaer.nl",
"commits": 33,
"additions": 338,
"deletions": 244
}]
```
lib/api/entities.rb
浏览文件 @
8031be73
...
...
@@ -218,5 +218,9 @@ module API
expose
:same
,
as: :compare_same_ref
end
class
Contributor
<
Grape
::
Entity
expose
:name
,
:email
,
:commits
,
:additions
,
:deletions
end
end
end
lib/api/repositories.rb
浏览文件 @
8031be73
...
...
@@ -150,6 +150,18 @@ module API
compare
=
Gitlab
::
Git
::
Compare
.
new
(
user_project
.
repository
.
raw_repository
,
params
[
:from
],
params
[
:to
],
MergeRequestDiff
::
COMMITS_SAFE_SIZE
)
present
compare
,
with:
Entities
::
Compare
end
# Get repository contributors
#
# Parameters:
# id (required) - The ID of a project
# Example Request:
# GET /projects/:id/repository/contributors
get
':id/repository/contributors'
do
authorize!
:download_code
,
user_project
present
user_project
.
repository
.
contributors
,
with:
Entities
::
Contributor
end
end
end
end
lib/gitlab/contributors.rb
0 → 100644
浏览文件 @
8031be73
module
Gitlab
class
Contributor
attr_accessor
:email
,
:name
,
:commits
,
:additions
,
:deletions
def
initialize
@commits
,
@additions
,
@deletions
=
0
,
0
,
0
end
end
end
spec/requests/api/repositories_spec.rb
浏览文件 @
8031be73
...
...
@@ -128,7 +128,7 @@ describe API::API, api: true do
end
end
describe
'GET /
GET /
projects/:id/repository/compare'
do
describe
'GET /projects/:id/repository/compare'
do
it
"should compare branches"
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/compare"
,
user
),
from:
'master'
,
to:
'simple_merge_request'
response
.
status
.
should
==
200
...
...
@@ -166,4 +166,18 @@ describe API::API, api: true do
json_response
[
'compare_same_ref'
].
should
be_true
end
end
describe
'GET /projects/:id/repository/contributors'
do
it
'should return valid data'
do
get
api
(
"/projects/
#{
project
.
id
}
/repository/contributors"
,
user
)
response
.
status
.
should
==
200
json_response
.
should
be_an
Array
contributor
=
json_response
.
first
contributor
[
'email'
].
should
==
'dmitriy.zaporozhets@gmail.com'
contributor
[
'name'
].
should
==
'Dmitriy Zaporozhets'
contributor
[
'commits'
].
should
==
185
contributor
[
'additions'
].
should
==
66072
contributor
[
'deletions'
].
should
==
63013
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录