如何通过RESTAPI找到JIRA问题的状态?
我正在编写一个脚本(在Powershell中,如果需要的话)来部署SQL代码。我希望脚本中的部分逻辑是让它在部署之前检查与脚本关联的JIRA问题是否处于正确状态(例如,在我的情况下,问题状态为“QE认证”) 我正在尝试使用JIRA REST API,但到目前为止,我无法找到一种方法来提供问题的当前状态。我找到的最接近的方法是查看该问题可用的转换: 这并没有告诉我当前的状态,但我可以从可用的转换中找出它。这对我来说似乎有点笨拙 我希望会有像/rest/api/2/issue/{issueidworkey}/status这样的东西,它会告诉我问题的当前状态 通过RESTAPI获取问题状态的最佳方法是什么 谢谢您可以使用并设置fields参数,将返回的数据限制在status字段中 所以你的要求是:如何通过RESTAPI找到JIRA问题的状态?,rest,jira,Rest,Jira,我正在编写一个脚本(在Powershell中,如果需要的话)来部署SQL代码。我希望脚本中的部分逻辑是让它在部署之前检查与脚本关联的JIRA问题是否处于正确状态(例如,在我的情况下,问题状态为“QE认证”) 我正在尝试使用JIRA REST API,但到目前为止,我无法找到一种方法来提供问题的当前状态。我找到的最接近的方法是查看该问题可用的转换: 这并没有告诉我当前的状态,但我可以从可用的转换中找出它。这对我来说似乎有点笨拙 我希望会有像/rest/api/2/issue/{issueidwo
/rest/api/2/issue/{issueIdOrKey}?fields=status
以下是示例请求:
/rest/api/2/issue/HTP-55
HTP-55
是问题id
以下是回复中对您有用的部分
"status": {
"self": "rest/api/2/status/3",
"description": "This issue is being actively worked on at the moment by the assignee.",
"iconUrl": "images/icons/statuses/inprogress.png",
**"name": "In Progress",
"id": "3"**
},
它可以通过使用curl命令来实现 语法:
curl -u username:password -X GET -H "Content-Type: application/json"
https://server-url/rest/api/2/issue/JRA-1?fields=status
如果您喜欢使用更高版本的Jira REST Java客户端API(例如4.0),下面是示例代码
private static final String JIRA_SERVER = "http://jiralab";
public static void main(String[] args) {
try {
JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
URI uri = new URI(JIRA_SERVER);
JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, "admin", "admin");
getIssue(client, "ISSUE-1");
}
catch (Exception ex) {
}
}
private static void getIssue(JiraRestClient client, String key) throws Exception {
Promise<Issue> promise = client.getIssueClient().getIssue(key);
Issue issue = promise.claim();
System.out.println("Summary = " + issue.getSummary() + ", Status = " + (issue.getStatus() != null ? issue.getStatus().getName() : "N/A"));
}
private静态最终字符串JIRA_SERVER=”http://jiralab";
公共静态void main(字符串[]args){
试一试{
JiraRestClientFactory=new AsynchronousJiraRestClientFactory();
URI=新URI(JIRA_服务器);
JiraRestClient=factory.createWithBasicHttpAuthentication(uri,“admin”,“admin”);
getIssue(客户,“问题1”);
}
捕获(例外情况除外){
}
}
私有静态void getIssue(JiraRestClient客户端,字符串键)引发异常{
Promise Promise=client.getIssueClient().getIssue(键);
Issue=promise.claim();
System.out.println(“Summary=“+issue.getSummary()+”,Status=“+(issue.getStatus()!=null?issue.getStatus().getName():“不适用”);
}
非常感谢您,您为有需要的人节省了宝贵的时间。