从atlassian stash获取所有拉取请求ID

时间:2018-05-09 06:52:29

标签: bitbucket pull-request bitbucket-api

我需要使用REST API获取所有拉取请求ID。 我使用下面的api来获取。

https://stash.net/rest/api/1.0/projects/{}/repos/{}/pull-requests?at=refs/heads/release-18&state=ALL&order=OLDEST&withAttributes=false&withProperties=true&limit=1000

在响应中它只有100大小,即使我将限制设置为1000

{
"size": 100,
"limit": 100,
"isLastPage": false,
"values": [],
"start": 0,
"nextPageStart": 100
}

有没有办法获得拉取请求?

1 个答案:

答案 0 :(得分:2)

您的REST API调用没有任何问题。您正在调用的端点默认值为25,上限不超过100.任何超过100的limit值都将返回最多100个结果。

这是有充分理由的:它保护应用程序不会立即将太多结果加载到内存中。 Stash / Bitbucket Server通常使用相当小的堆大小,因为繁重的工作由git完成,你不希望JVM使用git需要的内存。 99.9%的时间正确的方法是按照想要使用的方式使用分页API:一次一页。通过搜索结果来获取所需的所有数据应该相对容易,如果你被困在那里,我可以用Python的分页示例来更新这个答案。

如果确实想要更改此限制,您可以通过在{em> $ BITBUCKET_HOME / shared / bitbucket.properties <中设置page.max.pullrequests=1000,通过Bitbucket Server config properties执行此操作/ em>并重新启动应用程序。我不建议这样做,如果你不小心的话,你可能会在你的JVM中设置OutOfMemory错误。

完全披露,我为Atlassian工作。