当前位置:网站首页>Jira --- workflow call external api
Jira --- workflow call external api
2022-07-19 07:58:00 【Small stall of shark pepper】
Jira --- workflow call external api
1.postfounction
Transition:
- stay workflow In a certain state , Auto call external api
- open workflow transition
- Add post function
- http get
Here is groovy script
get No arguments , test OK
import groovy.json.JsonSlurper;
import groovy.json.StreamingJsonBuilder;
//import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue
import org.apache.commons.codec.binary.Base64;
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.*
import groovyx.net.http.ContentType
import static groovyx.net.http.Method.*
import groovy.json.JsonSlurper
import net.sf.json.groovy.JsonSlurper
import groovy.json.JsonOutput
// Define Required Component Access
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()
// Define Web API to post to
def baseURL = "http://xxxxxy";
URL url = new URL(baseURL);
log.error("url="+url);
HttpURLConnection connection = url.openConnection() as HttpURLConnection;
connection.setRequestMethod("GET")
connection.connect();
log.error("URL="+url+",Status="+connection.getResponseCode() as String)
log.error("status1:"+connection.getResponseMessage())
connection.disconnect()
get Ginseng , Found in the community , I haven't tried yet
import groovy.json.JsonSlurper;
import groovy.json.StreamingJsonBuilder;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue
import org.apache.commons.codec.binary.Base64;
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.*
import groovyx.net.http.ContentType
import static groovyx.net.http.Method.*
import groovy.json.JsonSlurper
import net.sf.json.groovy.JsonSlurper
import groovy.json.JsonOutput
// Define Required Component Access
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()
// Get Issue ID that contains the Data
Issue issue = issueManager.getIssueObject( "SSD-18222" );
// Get field values
def fullName = customFieldManager.getCustomFieldObjectByName("Full Name");
def fullNameValue = issue.getCustomFieldValue(fullName);
//def firstName = customFieldManager.getCustomFieldObjectByName("Firstname");
//def firstNameValue = issue.getCustomFieldValue(firstName);
def firstNameValue = "Jane"
def lastName = customFieldManager.getCustomFieldObjectByName("Surname");
def lastNameValue = issue.getCustomFieldValue(lastName);
//def officeNumber = customFieldManager.getCustomFieldObjectByName("Office Number");
//def officeNumberValue = issue.getCustomFieldValue(officeNumber);
def officeNumberValue = "+27115234020"
def mobileNumber = customFieldManager.getCustomFieldObjectByName("Cell Phone Number");
def mobileNumberValue = issue.getCustomFieldValue(mobileNumber);
//def faxNumber = customFieldManager.getCustomFieldObjectByName("Office Number");
//def faxNumberValue = issue.getCustomFieldValue(faxNumber);
def title = customFieldManager.getCustomFieldObjectByName("Job Title");
def titleValue = issue.getCustomFieldValue(title);
def department = customFieldManager.getCustomFieldObjectByName("Department");
def departmentValue = issue.getCustomFieldValue(department);
def siteName = customFieldManager.getCustomFieldObjectByName("Site Code");
def siteNameValue = issue.getCustomFieldValue(siteName);
def idNumber = customFieldManager.getCustomFieldObjectByName("ID Number");
def idNumberValue = issue.getCustomFieldValue(idNumber);
//def passportNumber = customFieldManager.getCustomFieldObjectByName("Passport Number");
//def passportNumberValue = issue.getCustomFieldValue(passportNumber);
//def birthdate = customFieldManager.getCustomFieldObjectByName("Birthday");
//def birthdateValue = issue.getCustomFieldValue(birthdate);
// Define JSON
def ContainerPath = "LDAP://OU=BU3,OU=BU2,OU=BU1,OU=Employees,OU=contoso,DC=contoso,DC=com"
def jsonBody = "{
\"parentContainerPath\":" + ContainerPath + "," +
\"firstName\":" + firstNameValue + "," +
\"lastName\":" + lastNameValue + "," +
\"telehpone\":" + officeNumberValue + "," +
\"mobile\":" + mobileNumberValue + "," +
\"title\":" + titleValue + "," +
\"department\":" + departmentValue + "," +
\"siteName\":" + siteNameValue + "," +
\"identificationNumber\":" + idNumberValue + "," +
\"passportNumber\":" + idNumberValue + "," +
\"birthDate\":" + birthday"
}"
return jsonBody
// Define Web API to post to
def baseURL = "http://<server>:8090/api/Employees";
// Establish Connection and post data
URL url = new URL(baseURL);
//URLConnection connection = url.openConnection();
HttpURLConnection connection = url.openConnection() as HttpURLConnection;
connection.requestMethod = "POST"
connection.doOutput = true
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8")
connection.outputStream
connection.outputStream.withWriter("UTF-8") {
new StreamingJsonBuilder(it, jsonBody) }
connection.connect();
log.info ("URL="+url+"Status="+connection.getResponseCode() as String)
边栏推荐
猜你喜欢

MongoDB的下载、安装和使用

4-channel fmc+ baseband signal processing board (4-channel 2G instantaneous bandwidth ad+da)

How does continuous integration manage Jenkins?

What is the difference between SD NAND and nandflash?

Jira --- workflow call external api

串口通讯到底有没有累积误差及对时钟精度的要求

数据库复习--数据库恢复技术

Flutter3.0 (framework) - UI rendering

Ccf-csp "202206-2 - treasure hunt! Adventure!"
![[MySQL] lock mechanism: detailed explanation of lock classification, table lock, row lock and page lock in InnoDB engine](/img/7e/ddf05e76da26e9b2d1fd1519703571.png)
[MySQL] lock mechanism: detailed explanation of lock classification, table lock, row lock and page lock in InnoDB engine
随机推荐
Xiaoyi and you talk about how to realize c-v2x HIL test in v2x test series (2022 version)
A set of Jenkins style for personal use
Titanic passenger rescue prediction (Advanced)
Practice of online problem feedback module (V): realize the automatic filling function of general field content
Discussion on risc-v Technology
网站APP数据库里的用户信息被泄露篡改怎么办
175. Combine two tables (MySQL database connection)
RISC-V技術雜談
养老年金保险有必要买吗?适合老人的养老年金产品有哪些?
FMC sub card: 4-way sfp+ 10 Gigabit optical fiber network FMC sub card
2022危险化学品经营单位主要负责人复习题及模拟考试
RNN convolutional neural network
How to choose the right model
Redis 跳跃表实现原理 & 时间复杂度分析
【JVM】之堆内存、逃逸分析、栈上分配、同步省略、标量替换详解
传递多图片,是空情况的判断。
[MySQL] mvcc: correctly understand mvcc and its implementation principle
redis 存储结构原理 2
How does Jenkins set the mailbox to automatically send mail?
Double index mechanism of redis source code analysis
