【问题标题】:Edit a JIRA issue through Google Apps Script - POST and JSON通过 Google Apps 脚本编辑 JIRA 问题 - POST 和 JSON
【发布时间】:2018-04-20 11:37:43
【问题描述】:

我正在尝试通过 GAS 编辑 JIRA 中的问题。 看别人的代码 (例如 - Using Google Apps Script to Post JSON Data) 我想出了这段代码:

function myFunctionpostTest() {
  var username = "username";
  var password = "password";
  var encCred = Utilities.base64Encode(username+":"+password);

  var url = "https://<base_url>/rest/api/2/issue/";
  var data = {"project":{ "key": "STUDIO-4499"},"summary": "create 
  issue.", "issuetype": {"name": "Bug"}}  ;
  var payload = JSON.stringify(data);

  var headers = { "Accept":"application/json", 
              "Content-Type":"application/json", 
              "Authorization":"Basic " + encCred,
         };

  var options = { "method":"POST",
              "contentType" : "application/json",
              "headers": headers,
              "payload" : payload
           };
  var response = UrlFetchApp.fetch(url, headers);
  Logger.log(response); 
 }

问题是我不断收到错误:

请求失败......返回代码 405

我错过了什么?为什么这段代码不起作用?
请不要回答 cURL 示例,因为它与我的问题无关

【问题讨论】:

    标签: javascript post google-apps-script jira jira-rest-api


    【解决方案1】:

    脚本中似乎没有使用options。那么如何进行如下修改呢?但我不知道option 是否适合该请求。我很抱歉。

    发件人:

    var response = UrlFetchApp.fetch(url, headers);
    

    收件人:

    var response = UrlFetchApp.fetch(url, options);
    

    如果这对你没有用,我很抱歉。

    编辑:

    下面的修改脚本怎么样?参考是here

    function myFunctionpostTest() {
        var username = "username";
        var password = "password";
        var encCred = Utilities.base64Encode(username+":"+password);
        var url = "https://<base_url>/rest/api/2/issue/";
        var data = {
          "fields": {
            "project": {
              "key": "STUDIO-4499"
            },
            "summary": "create \r\n  issue.",
            "issuetype": {
              "name": "Bug"
            }
          }
        };
        var payload = JSON.stringify(data);
        var headers = {"Authorization":"Basic " + encCred};
        var options = {
          "method":"POST",
          "contentType": "application/json",
          "headers": headers,
          "payload": payload
        };
        var response = UrlFetchApp.fetch(url, options);
        Logger.log(response);
    }
    

    【讨论】:

      【解决方案2】:

      使用此参考 -
      https://docs.atlassian.com/jira/REST/7.4.0/?_ga=2.214927127.1280782706.1510046526-258513799.1499779287#api/2/issue-editIssue

      我已将数据变量更改为

      {"update":{"summary":[{"set":"Bug in business logic"}]}}; 
      

      网址

      var url = "https://<base URL>/rest/api/2/issue/41335";
      

      并将options var中的方法更改为

      "method":"PUT",
      

      现在它可以工作了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-23
        相关资源
        最近更新 更多