使用 Java 在 JIRA 中删除问题
Delete issue in JIRA using Java
我正在尝试编写一种方法来删除 JIRA 中的问题。
我已经有了创建和更新问题的方法,但是我找不到任何关于如何使用 Java 删除问题的文档。
如何从 Java 应用程序中删除 JIRA 问题?
您可以尝试从 IssueService 中删除:https://docs.atlassian.com/jira/latest/com/atlassian/jira/bc/issue/DefaultIssueService.html#delete(com.atlassian.crowd.embedded.api.User, com.atlassian.jira.bc.issue.IssueService.DeleteValidationResult)
您可以试试这个:(在这个 class 我通过使用 JQL 得到特定用户创建的问题,在得到响应后,我将一一删除所有问题)
public class DeleteJiraIssuesHelper {
private InputStream inputStream;
private JsonReader jsonReader;
public void deleteJiraIssues() throws JiraDeleteIssueException, IOException {
String JQL="your jql query";
try {
URL url = new URL(
"your jira url/rest/api/latest/search?jql="+JQL);
String userpass = "UserName" + ":" + "Password";
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json");
if (conn.getResponseCode() != 200) {
throw new JiraConnectionException("Failed : HTTP error code : " + conn.getResponseCode());
}
conn.getResponseMessage();
inputStream = conn.getInputStream();
jsonReader = Json.createReader(inputStream);
JsonObject jsonObject = jsonReader.readObject();
int no = jsonObject.getInt("total");
JsonArray jsonArray = jsonObject.getJsonArray("issues");
List<String> issueList = new ArrayList<>();
for (int i = 0; i <= no - 1; i++) {
JsonObject jsonObject2 = jsonArray.getJsonObject(i);
String key = jsonObject2.getString("key");
issueList.add(key);
}
conn.disconnect();
HttpURLConnection httpCon = null;
for (int i = 0; i < no; i++) {
URL url2 = new URL(
"Jira url/rest/api/latest/issue/" + issueList.get(i));
httpCon = (HttpURLConnection) url2.openConnection();
httpCon.setRequestProperty("Authorization", basicAuth);
httpCon.setDoOutput(true);
httpCon.setRequestProperty("Content-Type", "application/json");
httpCon.setRequestMethod("DELETE");
httpCon.connect();
httpCon.getResponseCode();
httpCon.disconnect();
}
} catch (IOException ex) {
throw new JiraDeleteIssueException("MalformedURLException: " + ex);
} finally {
inputStream.close();
jsonReader.close();
}
}
}
我正在尝试编写一种方法来删除 JIRA 中的问题。
我已经有了创建和更新问题的方法,但是我找不到任何关于如何使用 Java 删除问题的文档。
如何从 Java 应用程序中删除 JIRA 问题?
您可以尝试从 IssueService 中删除:https://docs.atlassian.com/jira/latest/com/atlassian/jira/bc/issue/DefaultIssueService.html#delete(com.atlassian.crowd.embedded.api.User, com.atlassian.jira.bc.issue.IssueService.DeleteValidationResult)
您可以试试这个:(在这个 class 我通过使用 JQL 得到特定用户创建的问题,在得到响应后,我将一一删除所有问题)
public class DeleteJiraIssuesHelper {
private InputStream inputStream;
private JsonReader jsonReader;
public void deleteJiraIssues() throws JiraDeleteIssueException, IOException {
String JQL="your jql query";
try {
URL url = new URL(
"your jira url/rest/api/latest/search?jql="+JQL);
String userpass = "UserName" + ":" + "Password";
String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", basicAuth);
conn.setRequestProperty("Content-Type", "application/json");
if (conn.getResponseCode() != 200) {
throw new JiraConnectionException("Failed : HTTP error code : " + conn.getResponseCode());
}
conn.getResponseMessage();
inputStream = conn.getInputStream();
jsonReader = Json.createReader(inputStream);
JsonObject jsonObject = jsonReader.readObject();
int no = jsonObject.getInt("total");
JsonArray jsonArray = jsonObject.getJsonArray("issues");
List<String> issueList = new ArrayList<>();
for (int i = 0; i <= no - 1; i++) {
JsonObject jsonObject2 = jsonArray.getJsonObject(i);
String key = jsonObject2.getString("key");
issueList.add(key);
}
conn.disconnect();
HttpURLConnection httpCon = null;
for (int i = 0; i < no; i++) {
URL url2 = new URL(
"Jira url/rest/api/latest/issue/" + issueList.get(i));
httpCon = (HttpURLConnection) url2.openConnection();
httpCon.setRequestProperty("Authorization", basicAuth);
httpCon.setDoOutput(true);
httpCon.setRequestProperty("Content-Type", "application/json");
httpCon.setRequestMethod("DELETE");
httpCon.connect();
httpCon.getResponseCode();
httpCon.disconnect();
}
} catch (IOException ex) {
throw new JiraDeleteIssueException("MalformedURLException: " + ex);
} finally {
inputStream.close();
jsonReader.close();
}
}
}