我在项目中使用Stash的REST API。我的任务是获取特定标签的标签详细信息。在检查Stash的REST API文档后,我找到了应该使用的正确端点。它是
/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/tags/{name:.*}
请参阅此link以获取Stash的REST API文档。
还有一个端点/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/tags
使用此端点,我可以检索所有标记。 StashTag
对象看起来像这样。
{
"id": "refs/tags/v4.0.0",
"displayId": "v4.0.0",
"latestChangeset": "234dadf41742cfc2a10cadc7c2364438bd8891c5",
"latestCommit": "234dadf41742cfc2a10cadc7c2278658bd8891c5"
"hash" : "null"
}
我的第一个问题是,我不知道哪个字段用作{name:.*}
的参数。应该是displayId
还是Id
还是其他任何内容。
第二个问题是,我不明白在端点:
中.
(冒号)后跟/rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/tags/{name:.*}
(点)意味着什么。
有人可以解释一下路径参数中:.
的目的是什么,以及如何点击这种端点。此外,完整端点的一个例子很不错。
到目前为止,我已尝试点击
https://stashtest.abc.com/rest/api/1.0/projects/KARTIK/repos/kartiks-test-repository/tags/v4.0.0
https://stashtest.abc.com/rest/api/1.0/projects/KARTIK/repos/kartiks-test-repository/tags/refs/tags/v4.0.0
这些终点都不起作用。
感谢任何帮助。
答案 0 :(得分:0)
{name:.*}
实际上只是说name
字段可以是任何内容。将这一部分归咎于他们的文档很差。可以把它想象为Regex领域,因为它正是它的本质。我确信他们曾经有过类似^[0-9]
之类的东西,然后当他们意识到只使用标签号码时会更改它会使用他们的轻量级标签功能省略任何人。
从您的代码版本中删除v
,看看是否有帮助。如果没有,我还建议您创建一个lightweight tag(类似mytag
)并查看是否可以按此方式点击(例如/kartiks-test-repository/tags/mytag
)。
但是查看该文档告诉我,您的标记名称中的v
正在抛弃REST调用。