GAS에서 JIRA에서 버전 목록을 얻는 방법
9453 단어 GoogleAppsScriptjiragas
그럴 때, GAS를 사용해 JIRA의 REST API를 두드려 정기적으로 버전 일람을 취해 이것하면 편리합니다.
그래서 GAS에서 JIRA에서 버전 목록을 얻기위한 프로그램을 작성해 보았습니다.
절차
/rest/auth/1/session
로 로그인 /rest/api/2/project/{projectIdOrKey}/versions
에서 버전 목록 얻기 GAS 프로젝트 만들기
먼저 위의 단계에 따라 Google Apps Script 프로젝트를 만듭니다.
/rest/auth/1/session으로 로그인
만든 프로젝트의 gs 파일에 다음 함수를 만듭니다.
/**
* ログインしてセッションIDを取得する関数
*
* @param username ログインするユーザ名
* @param password パスワード
* @param host アクセスするJIRAのURL(https://jira-host.co.jp的な感じ)
* @return 取得したセッションID
*/
function getJIRASessionID(username, password, host) {
const body = {
username: username,
password: password
};
const headers = {
Accept: "application/json"
};
const options = {
payload: JSON.stringify(body),
muteHttpExceptions: true,
contentType: "application/json",
headers: headers,
method: "post"
};
const response = UrlFetchApp.fetch(
host + "/rest/auth/1/session",
options
);
const responseHeaders = response.getAllHeaders();
let cookies = [];
if (typeof responseHeaders["Set-Cookie"] !== "undefined") {
cookies =
typeof responseHeaders["Set-Cookie"] == "string"
? [responseHeaders["Set-Cookie"]]
: responseHeaders["Set-Cookie"];
for (var i = 0; i < cookies.length; i++) {
cookies[i] = cookies[i].split(";")[0];
}
}
return cookies[0];
}
이 함수는 Jira Server platform REST API reference에서 session-login 항목 에 있는 API를 두드려 반환된 헤더의 쿠키를 반환하는 함수입니다.
이 함수의 반환 값을 다음 요청의 헤더에 넣어 로그인 상태를 상속받습니다.
/**
* ログインしてセッションIDを取得する関数
*
* @param username ログインするユーザ名
* @param password パスワード
* @param host アクセスするJIRAのURL(https://jira-host.co.jp的な感じ)
* @return 取得したセッションID
*/
function getJIRASessionID(username, password, host) {
const body = {
username: username,
password: password
};
const headers = {
Accept: "application/json"
};
const options = {
payload: JSON.stringify(body),
muteHttpExceptions: true,
contentType: "application/json",
headers: headers,
method: "post"
};
const response = UrlFetchApp.fetch(
host + "/rest/auth/1/session",
options
);
const responseHeaders = response.getAllHeaders();
let cookies = [];
if (typeof responseHeaders["Set-Cookie"] !== "undefined") {
cookies =
typeof responseHeaders["Set-Cookie"] == "string"
? [responseHeaders["Set-Cookie"]]
: responseHeaders["Set-Cookie"];
for (var i = 0; i < cookies.length; i++) {
cookies[i] = cookies[i].split(";")[0];
}
}
return cookies[0];
}
/rest/api/2/project/{projectIdOrKey}/versions
에서 버전 목록 얻기 그런 다음 마찬가지로 만든 프로젝트의 gs 파일에 다음 함수를 만듭니다.
/**
* バージョン一覧を取得する関数
*
* @param projectIdOrKey プロジェクトIDまたはプロジェクトKey
* @param cookie getJIRASessionIDで取得した値を入れる
* @param host アクセスするJIRAのURL(https://jira-host.co.jp的な感じ)
* @return 取得したバージョン一覧
*/
function getVersions(projectIdOrKey, cookie, host) {
const options = {
headers: { cookie: cookie }
};
const response = UrlFetchApp.fetch(
host + "/rest/api/2/project/" + projectIdOrKey + "/versions",
options
);
const parse = JSON.parse(response);
return parse;
}
이 함수는 Jira Server platform REST API reference에서 project-getProjectVersions 항목 에 있는 API를 두드려 반환된 JSON을 구문 분석한 다음 반환하는 함수입니다.
예를 들어 이 함수의 반환값을 스프레드시트에 전개하거나 하는 것으로, JIRA로 할 수 없는 여러가지 일을 할 수 있게 됩니다.
사용법
JIRA의 URL과 사용자 이름/비밀번호를 고정으로 넣고 프로젝트 키를 외부에서 넣을 수 있도록 하고 이 프로젝트를 라이브러리로 다른 GAS에서 가져와서 사용하고 있습니다.
라이브러리로 하는 방법은 다른 기사에도 있다고 생각하므로 자세한 것은 생략합니다만, 파일>버전 관리>Save new version을 클릭해, 버전을 붙여 두면 다른 프로젝트의 리소스>라이브러리로부터 임포트가 가능 입니다.
JIRA를 사용하는 것은 아마도 개인이 아니라 회사라고 생각하기 때문에 사용자 이름/암호를 시스템 용으로 만든 계정으로 지정하는 것이 더 좋습니다.
Reference
이 문제에 관하여(GAS에서 JIRA에서 버전 목록을 얻는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuukiw00w/items/3574a21b7da9eb09e1b2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GAS에서 JIRA에서 버전 목록을 얻는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuukiw00w/items/3574a21b7da9eb09e1b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)