【问题标题】:Pull Request Metrics in StashStash 中的拉取请求指标
【发布时间】:2015-10-23 03:18:05
【问题描述】:

我们被要求生成关于我们进行了多少代码审查的指标。 Stash/Git 有没有办法提取在 repo 上执行的历史拉取请求?特别是,以下内容会很有用:

  • 请求的日期/时间
  • 请求者姓名
  • 批准人姓名
  • 批准日期/时间

【问题讨论】:

标签: git pull-request bitbucket-server


【解决方案1】:

正如Robbie Averill 已经建议的那样,您可以为此使用Stash REST APIs,更具体地说,Stash Core REST API,它为核心 Stash 功能(例如服务器管理、项目、存储库、拉取请求)提供 REST 资源和用户管理:

GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests 产生paged 针对相关回购的开放拉取请求列表。响应包含您正在寻找的大部分信息,尤其是拉取请求日期、authorreviewers 甚至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 日期中估算它。

【讨论】:

  • api 打印的日期格式是什么?例如:1359075920
  • @ravi - 这是Unix time定义为自 1970 年 1 月 1 日星期四 00:00:00 协调世界时 (UTC) 以来经过的秒数。这是 API 中两种常用的时间格式之一,另一种(并且更人性化)是ISO 8601
猜你喜欢
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多