【Hubot】Backlog에서 Hubot을 경유하여 Chatwork에 과제의 조작을 통지
깨달은 것
Backlog에서 과제를 추가, 혹은 갱신·삭제하면・・・
라는 형태로 실시간으로 채팅 워크에 알림이 전송됩니다.
이런 느낌으로 Backlog와 채팅 툴이 연계되면, 메일로부터 과제를 추적할 필요가 없어지기 때문에, 점점 메일의 존재감이 줄어 가는 것 같은 생각이 들었습니다.
구체적인 설정에 관해서는, 거의 이쪽을 참고로 하고 있습니다-.
Backlog에서 Webhook이 추가되었습니다! Hubot을 통해 Slack과 협력했습니다.
준비
Hubot 측 설정
적절한 이름으로 스크립트 작성
backlog.coffee
backlogUrl = 'https://XXXXX.backlog.jp/'
module.exports = (robot) ->
robot.router.post "/room/:room", (req, res) ->
room = req.params.room
body = req.body
console.log 'body type = ' + body.type
console.log 'room = ' + room
try
switch body.type
when 1
label = '課題が追加'
when 2, 3
label = '課題が更新'
when 4
label = '課題が削除'
else
return
url = "#{backlogUrl}view/#{body.project.projectKey}-#{body.content.key_id}"
if body.content.comment?.id?
url += "#comment-#{body.content.comment.id}"
message = "[info][title]Backlogより[/title]"
message += "#{body.createdUser.name}さんによって#{label}されました\n"
message += "[#{body.project.projectKey}-#{body.content.key_id}]"
message += "#{body.content.summary}\n"
if body.content.comment?.content?
message += "#{body.content.comment.content}\n"
message += "#{url}[/info]"
console.log 'message = ' + message
if message?
robot.messageRoom room, message
res.end "OK"
else
robot.messageRoom room, "Backlog integration error."
res.end "Error"
catch error
robot.send
res.end "Error"
메시지의 성형 곳은 채팅 워크에 맞추어 Fuck하고 있습니다. 여기에 와서, 채팅 워크 기법이 의외로 편리하다고 생각해 왔습니다.
Backlog 측 설정
프로젝트의 프로젝트 설정에서 Webhook을 선택합니다.
에는 다음과 같은 형식으로 입력합니다.
http://<Hubotのホスト名>/room/<ChatworkのルームID>
저장하기 전에, 「실행」을 클릭하면 Webhook의 테스트 송신이 가능.
<통지하는 이벤트>에서 Backlog의 어떤 조작을 송신할지를 선택할 수 있게 되어 있고, [모두]에 ✔️를 넣으면 다음과 같은 응답 바디가 전송됩니다.
[
{
"id": 3153,
"project": {
"id": 92,
"projectKey": "SUB",
"name": "サブタスク",
"chartEnabled": true,
"subtaskingEnabled": true,
"textFormattingRule": null,
"archived": false,
"displayOrder": 0
},
"type": 2,
"content": {
"id": 4809,
"key_id": 121,
"summary": "コメント",
"description": "",
"comment": {
"id": 7237,
"content": ""
},
"changes": [
{
"field": "milestone",
"new_value": "R2014-07-23",
"old_value": "",
"type": "standard"
},
{
"field": "status",
"new_value": "4",
"old_value": "1",
"type": "standard"
}
]
},
"notifications": [
{
"id": 25,
"alreadyRead": false,
"reason": 2,
"user": {
"id": 5686,
"userId": "takada",
"name": "takada",
"roleType": 2,
"lang": "ja",
"mailAddress": "[email protected]"
}
"resourceAlreadyRead":false
},
],
"createdUser": {
"id": 1,
"userId": "admin",
"name": "admin",
"roleType": 1,
"lang": "ja",
"mailAddress": "[email protected]"
},
"created": "2013-12-27T07:50:44Z"
},
]
파라미터의 「type」도 1~17까지 있으므로, 통지하고 싶은 내용에 의해서 잘 표시를 바꿀 수 있군요.
"backlog.coffee"측에서 "type"에 의해 표시를 성형하면 알기 쉬워진다고 생각합니다.
자세한 내용은 최근 업데이트 받기을 참조하십시오.
Reference
이 문제에 관하여(【Hubot】Backlog에서 Hubot을 경유하여 Chatwork에 과제의 조작을 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kingpanda/items/4de3c40ed615941bbd5f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
backlogUrl = 'https://XXXXX.backlog.jp/'
module.exports = (robot) ->
robot.router.post "/room/:room", (req, res) ->
room = req.params.room
body = req.body
console.log 'body type = ' + body.type
console.log 'room = ' + room
try
switch body.type
when 1
label = '課題が追加'
when 2, 3
label = '課題が更新'
when 4
label = '課題が削除'
else
return
url = "#{backlogUrl}view/#{body.project.projectKey}-#{body.content.key_id}"
if body.content.comment?.id?
url += "#comment-#{body.content.comment.id}"
message = "[info][title]Backlogより[/title]"
message += "#{body.createdUser.name}さんによって#{label}されました\n"
message += "[#{body.project.projectKey}-#{body.content.key_id}]"
message += "#{body.content.summary}\n"
if body.content.comment?.content?
message += "#{body.content.comment.content}\n"
message += "#{url}[/info]"
console.log 'message = ' + message
if message?
robot.messageRoom room, message
res.end "OK"
else
robot.messageRoom room, "Backlog integration error."
res.end "Error"
catch error
robot.send
res.end "Error"
프로젝트의 프로젝트 설정에서 Webhook을 선택합니다.
에는 다음과 같은 형식으로 입력합니다.
http://<Hubotのホスト名>/room/<ChatworkのルームID>
저장하기 전에, 「실행」을 클릭하면 Webhook의 테스트 송신이 가능.
<통지하는 이벤트>에서 Backlog의 어떤 조작을 송신할지를 선택할 수 있게 되어 있고, [모두]에 ✔️를 넣으면 다음과 같은 응답 바디가 전송됩니다.
[
{
"id": 3153,
"project": {
"id": 92,
"projectKey": "SUB",
"name": "サブタスク",
"chartEnabled": true,
"subtaskingEnabled": true,
"textFormattingRule": null,
"archived": false,
"displayOrder": 0
},
"type": 2,
"content": {
"id": 4809,
"key_id": 121,
"summary": "コメント",
"description": "",
"comment": {
"id": 7237,
"content": ""
},
"changes": [
{
"field": "milestone",
"new_value": "R2014-07-23",
"old_value": "",
"type": "standard"
},
{
"field": "status",
"new_value": "4",
"old_value": "1",
"type": "standard"
}
]
},
"notifications": [
{
"id": 25,
"alreadyRead": false,
"reason": 2,
"user": {
"id": 5686,
"userId": "takada",
"name": "takada",
"roleType": 2,
"lang": "ja",
"mailAddress": "[email protected]"
}
"resourceAlreadyRead":false
},
],
"createdUser": {
"id": 1,
"userId": "admin",
"name": "admin",
"roleType": 1,
"lang": "ja",
"mailAddress": "[email protected]"
},
"created": "2013-12-27T07:50:44Z"
},
]
파라미터의 「type」도 1~17까지 있으므로, 통지하고 싶은 내용에 의해서 잘 표시를 바꿀 수 있군요.
"backlog.coffee"측에서 "type"에 의해 표시를 성형하면 알기 쉬워진다고 생각합니다.
자세한 내용은 최근 업데이트 받기을 참조하십시오.
Reference
이 문제에 관하여(【Hubot】Backlog에서 Hubot을 경유하여 Chatwork에 과제의 조작을 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kingpanda/items/4de3c40ed615941bbd5f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)