Slack Workflow에서 Backlog 티켓 기표를 자동화해보기
우선 소개
Slack Workflow라는 것이 있습니다.
정례 작업을 Slack상에서 자동화하는 것이 가능합니다.
도구 연동 및 작업 자동화
Webhook도 사용할 수 있습니다.
Webhook을 사용하여 고급 워크플로 만들기
하고 싶은 일
현재 상태는 시스템 오류를 Slack 통지하고 있습니다.
그 오류 알림 중에서 Backlog에 과제 추가가 필요한 것을 확인하고,
기표하는 운용으로 하고 있습니다.
이하의 순서로 실시하고 있습니다.
1. Slack의 내용을 확인
2. 티켓 기표가 필요한지 확인(문서 보기 or 멤버에게 질문)
3. Backlog에 티켓 기표한다(Slack의 통지를 copipe)
Slack→Backlog나 GitHub를 오가기 때문에, 귀찮다고 하는 생각이. . .
여기 편을 Slack상에서 끝내고 싶었고, Slack Workflow 도입을 생각했습니다.
결론부터
Slack Workflow에서 스프레드 시트를 통해,
GAS에서 Backlog API를 호출하기로 결정했습니다.
Slack Workflow -> google 스프레드 시트 -> Backlog
절차
현재 상태는 시스템 오류를 Slack 통지하고 있습니다.
그 오류 알림 중에서 Backlog에 과제 추가가 필요한 것을 확인하고,
기표하는 운용으로 하고 있습니다.
이하의 순서로 실시하고 있습니다.
1. Slack의 내용을 확인
2. 티켓 기표가 필요한지 확인(문서 보기 or 멤버에게 질문)
3. Backlog에 티켓 기표한다(Slack의 통지를 copipe)
Slack→Backlog나 GitHub를 오가기 때문에, 귀찮다고 하는 생각이. . .
여기 편을 Slack상에서 끝내고 싶었고, Slack Workflow 도입을 생각했습니다.
결론부터
Slack Workflow에서 스프레드 시트를 통해,
GAS에서 Backlog API를 호출하기로 결정했습니다.
Slack Workflow -> google 스프레드 시트 -> Backlog
절차

GAS에서 Backlog API로 티켓을 추가하는 스크립트 준비
function createTicket(apiKey, baseUrl, projectId, issueTypeId, summary, description) {
var date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd');
var payload = {
"projectId" : projectId,
"summary" : summary + " (" + date + ")",
"issueTypeId" : issueTypeId,
"priorityId" : '3',
"description" : '```\n'+ description + '\n```'
}
var options = {
"method" : "POST",
"payload" : payload
}
var url = baseUrl + '/api/v2/issues'
+ '?' + 'apiKey=' + apiKey
;
return JSON.parse(UrlFetchApp.fetch(url, options).getContentText("UTF-8"));
}
function main() {
// 現在のスプレッドシートを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//現在のシートを取得
var sheet = spreadsheet.getActiveSheet();
lastRow = sheet.getLastRow();
//エラータイトル取得
var thisErrTitle = sheet.getRange(lastRow, 1).getValue();
//エラーメッセージ取得
var thisErrMsg = sheet.getRange(lastRow, 2).getValue();
var apiKey = 'apikey';
var baseUrl = 'baseurl';
//ここで登録したいプロジェクト指定
var projectId = 'projectId';
var issueTypeId = 'issueTypeId';
//バックログに課題追加
var json = createTicket(apiKey, baseUrl, projectId, issueTypeId, thisErrTitle, thisErrMsg);
}
이제 WebhookURL을 실행하면 Slack Workflow가 실행됩니다.
시도해보기
curl -X POST -d \
"{\"error_title\":\"$error_title", \"error_message\":\"$text\"}" \
$slack_webhook_url
curl 실행으로 Slack에 통지가 옵니다.

「티켓 기표하시겠습니까」버튼을 누르면 티켓이 기표되었습니다!
(캡처는 할애로・・・)
마지막으로
원래 Slack에 통지라고 하는 곳에서 재검토하자는 이야기도 나오고 있으므로, 이 구조 자체의 수명은 매우 짧을지도 모릅니다・・・
앞으로 살릴 타이밍이 오면 또 마주보고 싶습니다.
끝.
참고
Slack | Webhook을 사용하여 고급 워크플로 만들기
Backlog API | 과제 추가
Google Spreadsheet에 새 행이 추가되면 Chatwork에 알립니다.
Reference
이 문제에 관하여(Slack Workflow에서 Backlog 티켓 기표를 자동화해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuya-sakurai/items/fb7ec2a6efc23663e118
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Slack Workflow에서 Backlog 티켓 기표를 자동화해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuya-sakurai/items/fb7ec2a6efc23663e118텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)