まずはレスポンスをログに出すところまで
コード.gs
var ISSUE_URL = 'https://SITENAME.atlassian.net/rest/api/2/issue/'; function get_issue() { var token = get_token(); var key = "KEY-1"; var options = { contentType: "application/json", headers: {"Authorization": " Basic " + token} }; var url = ISSUE_URL + key; var response = UrlFetchApp.fetch(url, options); Logger.log(response); } function get_token() { var id = "LOGIN_EMAIL"; var pw = "API TOKEN"; var token = Utilities.base64Encode(id + ":" + pw); return token; } |
意訳issueのapiをたたくURLをISSUE_URLに入れる この機能がやること get_token()からtokenを取得して issue keyを指定して optionのオブジェクトを作る contentType は "application/json" headers は {"Authorization": " Basic " + token} urlにISSUE_URL + keyを入れて optionを付けてデータを取得して ログに出す この機能がやること JIRAのログインに使っているemailと APIトークンを base64Encodeでエンコードして 返す |
以前はAPI TOKENの代わりにパスワードでできましたが、廃止になったようです。
https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-basic-auth-and-cookie-based-auth/
ログに出たresponseを整形するとこのようになっている
response{ "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations", "id": "10000", "self": "https://SITENAME.atlassian.net/rest/api/2/issue/10000", "key": "KEY-1", "fields": { "issuetype": { "self": "https://SITENAME.atlassian.net/rest/api/2/issuetype/10002", "id": "10002", "description": "A task that needs to be done.", "iconUrl": "https://SITENAME.atlassian.net/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype", "name": "Task", "subtask": false, "avatarId": 10318 }, "timespent": null, "project": { "self": "https://SITENAME.atlassian.net/rest/api/2/project/10000", "id": "10000", "key": "KEY", "name": "PROJECT_NAME", "avatarUrls": { "48x48": "https://SITENAME.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400", "24x24": "https://SITENAME.atlassian.net/secure/projectavatar?size=small&pid=10000&avatarId=10400", "16x16": "https://SITENAME.atlassian.net/secure/projectavatar?size=xsmall&pid=10000&avatarId=10400", "32x32": "https://SITENAME.atlassian.net/secure/projectavatar?size=medium&pid=10000&avatarId=10400" } }, "fixVersions": [], "aggregatetimespent": null, "resolution": null, "resolutiondate": null, "workratio": -1, "lastViewed": "2018-01-02T06:16:27.735+0900", "watches": { "self": "https://SITENAME.atlassian.net/rest/api/2/issue/KEY-1/watchers", "watchCount": 1, "isWatching": true }, "created": "2018-01-01T20:39:15.578+0900", "customfield_10020": null, "customfield_10021": null, "customfield_10022": null, "priority": { "self": "https://SITENAME.atlassian.net/rest/api/2/priority/3", "iconUrl": "https://SITENAME.atlassian.net/images/icons/priorities/medium.svg", "name": "Medium", "id": "3" }, "customfield_10023": null, "customfield_10024": null, "labels": [], "customfield_10017": null, "customfield_10018": null, "customfield_10019": null, "timeestimate": null, "aggregatetimeoriginalestimate": null, "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-01-02T06:16:26.867+0900", "status": { "self": "https://SITENAME.atlassian.net/rest/api/2/status/10000", "description": "", "iconUrl": "https://SITENAME.atlassian.net/", "name": "To Do", "id": "10000", "statusCategory": { "self": "https://SITENAME.atlassian.net/rest/api/2/statuscategory/2", "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [], "timeoriginalestimate": null, "description": "最初のタスク", "customfield_10010": [], "customfield_10011": "0|hzzzzz:", "customfield_10012": null, "customfield_10013": null, "timetracking": {}, "security": null, "customfield_10008": null, "attachment": [], "customfield_10009": null, "aggregatetimeestimate": null, "summary": "テスト1", "creator": { "self": "https://SITENAME.atlassian.net/rest/api/2/user?username=admin", "name": "admin", "key": "admin", "accountId": "ACCOUNT_ID", "emailAddress": "LOGIN_EMAIL", "avatarUrls": { "48x48": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue", "24x24": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue", "16x16": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue", "32x32": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue" }, "displayName": "YOUR_NAME", "active": true, "timeZone": "Asia/Tokyo" }, "subtasks": [], "reporter": { "self": "https://SITENAME.atlassian.net/rest/api/2/user?username=admin", "name": "admin", "key": "admin", "accountId": "ACCOUNT_ID", "emailAddress": "LOGIN_EMAIL", "avatarUrls": { "48x48": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue", "24x24": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue", "16x16": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue", "32x32": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue" }, "displayName": "YOUR_NAME", "active": true, "timeZone": "Asia/Tokyo" }, "customfield_10000": "{}", "aggregateprogress": { "progress": 0, "total": 0 }, "customfield_10001": null, "customfield_10002": null, "customfield_10003": null, "customfield_10004": null, "environment": null, "duedate": null, "progress": { "progress": 0, "total": 0 }, "votes": { "self": "https://SITENAME.atlassian.net/rest/api/2/issue/KEY-1/votes", "votes": 0, "hasVoted": false }, "comment": { "comments": [{ "self": "https://SITENAME.atlassian.net/rest/api/2/issue/10000/comment/10000", "id": "10000", "author": { "self": "https://SITENAME.atlassian.net/rest/api/2/user?username=admin", "name": "admin", "key": "admin", "accountId": "ACCOUNT_ID", "emailAddress": "LOGIN_EMAIL", "avatarUrls": { "48x48": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue", "24x24": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue", "16x16": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue", "32x32": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue" }, "displayName": "YOUR_NAME", "active": true, "timeZone": "Asia/Tokyo" }, "body": "最初のタスクのコメント", "updateAuthor": { "self": "https://SITENAME.atlassian.net/rest/api/2/user?username=admin", "name": "admin", "key": "admin", "accountId": "ACCOUNT_ID", "emailAddress": "LOGIN_EMAIL", "avatarUrls": { "48x48": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue", "24x24": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue", "16x16": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue", "32x32": "https://avatar-cdn.atlassian.com/f539e6a019bdcf6b1635481ef4376f6c?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Ff539e6a019bdcf6b1635481ef4376f6c%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue" }, "displayName": "YOUR_NAME", "active": true, "timeZone": "Asia/Tokyo" }, "created": "2018-01-02T06:13:25.441+0900", "updated": "2018-01-02T06:13:25.441+0900" }], "maxResults": 1, "total": 1, "startAt": 0 }, "worklog": { "startAt": 0, "maxResults": 20, "total": 0, "worklogs": [] } } } |
参考
Get issue
https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-issueIdOrKey-get