【Hubot】Backlog에서 Hubot을 경유하여 Chatwork에 과제의 조작을 통지

18392 단어 BacklogChatworkHubot

깨달은 것



Backlog에서 과제를 추가, 혹은 갱신·삭제하면・・・



라는 형태로 실시간으로 채팅 워크에 알림이 전송됩니다.
이런 느낌으로 Backlog와 채팅 툴이 연계되면, 메일로부터 과제를 추적할 필요가 없어지기 때문에, 점점 메일의 존재감이 줄어 가는 것 같은 생각이 들었습니다.

구체적인 설정에 관해서는, 거의 이쪽을 참고로 하고 있습니다-.
Backlog에서 Webhook이 추가되었습니다! Hubot을 통해 Slack과 협력했습니다.

준비


  • Backlog에서 프로젝트 준비
  • Hubot을 서버에 배포하십시오.
  • Chatwork에서 통보 할 방 준비

  • 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"에 의해 표시를 성형하면 알기 쉬워진다고 생각합니다.

    자세한 내용은 최근 업데이트 받기을 참조하십시오.

    좋은 웹페이지 즐겨찾기