【发布时间】:2015-10-23 03:18:05
【问题描述】:
我们被要求生成关于我们进行了多少代码审查的指标。 Stash/Git 有没有办法提取在 repo 上执行的历史拉取请求?特别是,以下内容会很有用:
- 请求的日期/时间
- 请求者姓名
- 批准人姓名
- 批准日期/时间
【问题讨论】:
-
Stash has an API 你可以用这个
标签: git pull-request bitbucket-server
我们被要求生成关于我们进行了多少代码审查的指标。 Stash/Git 有没有办法提取在 repo 上执行的历史拉取请求?特别是,以下内容会很有用:
【问题讨论】:
标签: git pull-request bitbucket-server
正如Robbie Averill 已经建议的那样,您可以为此使用Stash REST APIs,更具体地说,Stash Core REST API,它为核心 Stash 功能(例如服务器管理、项目、存储库、拉取请求)提供 REST 资源和用户管理:
GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests 产生paged 针对相关回购的开放拉取请求列表。响应包含您正在寻找的大部分信息,尤其是拉取请求日期、author、reviewers 甚至participants:
{
"size": 1,
"limit": 25,
"isLastPage": true,
"values": [
{
"id": 101,
"version": 1,
"title": "Talking Nerdy",
"description": "It’s a kludge, but put the tuple from the database in the cache.",
"state": "OPEN",
"open": true,
"closed": false,
"createdDate": 1359075920,
"updatedDate": 1359085920,
"fromRef": {
"id": "refs/heads/feature-ABC-123",
"repository": {
"slug": "my-repo",
"name": null,
"project": {
"key": "PRJ"
}
}
},
"toRef": {
"id": "refs/heads/master",
"repository": {
"slug": "my-repo",
"name": null,
"project": {
"key": "PRJ"
}
}
},
"locked": false,
"author": {
"user": {
"name": "tom",
"emailAddress": "tom@example.com",
"id": 115026,
"displayName": "Tom",
"active": true,
"slug": "tom",
"type": "NORMAL"
},
"role": "AUTHOR",
"approved": true
},
"reviewers": [
{
"user": {
"name": "jcitizen",
"emailAddress": "jane@example.com",
"id": 101,
"displayName": "Jane Citizen",
"active": true,
"slug": "jcitizen",
"type": "NORMAL"
},
"role": "REVIEWER",
"approved": true
}
],
"participants": [
{
"user": {
"name": "dick",
"emailAddress": "dick@example.com",
"id": 3083181,
"displayName": "Dick",
"active": true,
"slug": "dick",
"type": "NORMAL"
},
"role": "PARTICIPANT",
"approved": false
},
{
"user": {
"name": "harry",
"emailAddress": "harry@example.com",
"id": 99049120,
"displayName": "Harry",
"active": true,
"slug": "harry",
"type": "NORMAL"
},
"role": "PARTICIPANT",
"approved": true
}
],
"link": {
"url": "http://link/to/pullrequest",
"rel": "self"
},
"links": {
"self": [
{
"href": "http://link/to/pullrequest"
}
]
}
}
],
"start": 0
}
仍然缺少确切的批准日期,但如果您碰巧使用 Checks for merging pull requests 并需要至少一次批准,您可以从拉取请求 closed 日期中估算它。
GET 应为每个审阅者返回这些详细信息,但不幸的是,fromType 仅记录为支持 COMMENT 或 ACTIVITY,但不支持 APPROVAL。