Backlog Add Issue
Adds an Issue based on its Project ID, Summary, Type ID, etc., and stores the communication log in a respective Data Item.
(C) Questetra, Inc. (MIT License)
Configs
  • A: Space id *
  • B: API key *
  • C: Select SELECT DATA for Project Id *
  • D: Select TEXT DATA for Summary *
  • E: Select TEXT DATA for Description
  • F: Select SELECT DATA for Issue Type Id *
  • G: Select SELECT DATA for Priority Id *
  • H: Select SELECT DATA for Assignee Id
  • I: Select SELECT DATA for Due Date
  • J: Select SELECT DATA for Category Id
  • X: Select TEXT DATA for Log
Script (click to open)

//// == コンフィグの参照 / Config Retrieving ==
var apiKey = configs.get("conf_ApiKey") + "";
var spaceId = configs.get("conf_SpaceId") + "";


//// == ワークフローデータの参照 / Data Retrieving ==
var projectId = engine.findDataByNumber( configs.get("conf_ProjectId") ).get(0).getValue() + "";
var summary = engine.findDataByNumber( configs.get("conf_Summary") ) + "";
var description = engine.findDataByNumber( configs.get("conf_Description") ) + "";
var issueTypeId = engine.findDataByNumber( configs.get("conf_IssueTypeId") ).get(0).getValue() + "";
var priorityId = engine.findDataByNumber( configs.get("conf_PriorityId") ).get(0).getValue() + "";

//以下は必須指定でないもの
var dataNum_AssigneeId = configs.get("conf_AssigneeId") + "";
var assigneeId;
if ((dataNum_AssigneeId !== "") && (engine.findDataByNumber( dataNum_AssigneeId ))) {
  assigneeId = engine.findDataByNumber( dataNum_AssigneeId ).get(0).getValue() + "";
}
var dataNum_DueDate = configs.get("conf_DueDate") + "";
var dueDate;
if ((dataNum_DueDate !== "") && (engine.findDataByNumber( dataNum_DueDate ))) {
  dueDate = engine.findDataByNumber( dataNum_DueDate ) + "";
}
var dataNum_CategoryId = configs.get("conf_CategoryId") + "";
var categoryId;
if ((dataNum_CategoryId !== "") && (engine.findDataByNumber( dataNum_CategoryId ))) {
  categoryId = engine.findDataByNumber( dataNum_CategoryId ).get(0).getValue() + "";
}


//// == 演算 / Calculating ==
//apiKey だけはクエリパラメータ
var request = httpClient.begin()
  .formParam( "projectId", projectId )
  .formParam( "summary", summary )
  .formParam( "description", description )
  .formParam( "issueTypeId", issueTypeId )
  .formParam( "priorityId", priorityId )
  .queryParam("apiKey", apiKey);
//以下は指定があれば
if (assigneeId) {
  request = request.formParam( "assigneeId", assigneeId );
}
if (dueDate) {
  request = request.formParam( "dueDate", dueDate );
}
if (categoryId) {
  request = request.formParam( "categoryId[]", categoryId );
}

var response = request.post( "https://" + spaceId + ".backlog.com/api/v2/issues" );


//// == ワークフローデータへの代入 / Data Updating ==
//ログデータの指定があれば
var dataNum_Log = configs.get("conf_Log") + "";
if (dataNum_Log !== "") {
  var log = "";
  log += "---POST request--- " + response.getStatusCode() + "\n";
  log += response.getResponseAsString() + "\n";
  engine.setDataByNumber( dataNum_Log, log );
}

Download

Capture

Notes

  • You need to obtain Backlog’s API key beforehand by referring to this page.

See also

%d bloggers like this: