Backlog 課題追加

プロジェクトID、課題の件名、課題の種別のIDなどから課題(issue)を追加し、通信ログをそれぞれデータ項目に格納します

© Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/backlog-issueadd/

Configs
  • A: Space id *
  • B: API key *
  • C: プロジェクトIDが格納されている選択型データ項目 *
  • D: 課題の件名が格納されている文字列型データ項目 *
  • E: 課題の詳細が格納されている文字列型データ項目
  • F: 課題の種別のIDが格納されている選択型データ項目 *
  • G: 課題の優先度のIDが格納されている選択型データ項目 *
  • H: 担当者のIDが格納されている選択型データ項目
  • I: 締切日が格納されている日付型データ項目
  • J: カテゴリのIDが格納されている選択型データ項目
  • X: ログが格納される文字型データ項目 (更新)
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

  • 事前に こちらのページ を参考にして Backlog の API Key を取得しておく必要があります

See also

%d人のブロガーが「いいね」をつけました。