Chatwork에 GitLab 푸시 및 병합 요청 알림 자동 게시

최근, Chatwork를 개발 멤버로 사용할 기회가 많아 모처럼이므로 GitLab의 푸시 통지 등도 투고되면 편리하다고 하는 것으로, 조사해 보면 chabot 라고 하는 훌륭한 것이 공개되어 있었으므로 사용해 보았다.

전제


  • GitLab
  • Chatwork
  • Heroku

  • 이 3개 사용한다. Heroku는 이미 등록된 전제.

    Heroku 명령줄 도구 설치



    Heroku는 웹 브라우저의 관리 화면에서 조작 가능하지만, 조금 번거롭기 때문에 커맨드 라인 툴을 인스톨 해 둔다.
  • heroku toolbelt

  • 다운로드하면 보통 설치.
    $ heroku login
    Enter your Heroku credentials.
    Email: 
    Password:
    

    이제 Heroku에도 로그인이 완료됩니다.

    chabot 설치


    $ npm install chabot -g
    

    매우 간단.

    chabot 설정



    chabot 명령을 사용할 수 있도록되어 있기 때문에 chabot create로 chabot 프로젝트 파일을 생성한다. 이번은 ~/Sites/chabot-sample/디렉토리에 만들었다.
    $ chabot create chabot-sample -d ~/Sites/ -f
    $ cd ~/Sites/chabot-sample
    $ git init
    

    계속해서 Heroku에 앱 등록을 한다. 이제 URL과 git 저장소가 발행됩니다.
    $ heroku apps:create chabot-sample
    $ git remote -v
    heroku  [email protected]:chabot-sample.git (fetch)
    heroku  [email protected]:chabot-sample.git (push)
    

    chabot 구성 파일 config.json을 수정합니다.

    config.json
    {
        "port": 5000,
        "bots": {
            "github": {
                "hostname": "chabot-sample.herokuapp.com",
                "token": "【chatworkのAPITOKEN】",
                "route": "/gitlab/hooks/:roomid"
            }
        }
    }
    

    hostname에는 heroku create로 생성된 호스트명을 지정. token은 Chatwork의 API 토큰을 지정. 덧붙여 Chatwork의 API는 지금 프리뷰판답게, 신청하지 않으면 사용할 수 없다.

    채팅 워크 API(미리 보기 버전) 신청

    덧붙여 곧 발행되지만, 한 번 Chatwork에서 로그 아웃하지 않으면 메뉴에 나오지 않았다 ... 그래서주의.

    마지막으로, node를 기동하기 위한 Procfile를 작성.
    web: node app.js
    

    chabot 시작


    $ git add .
    $ git commit -m 'first commit'
    $ git push heroku master
    

    이것으로 Heroku에 어플리케이션이 전송되어 무사히 chabot이 기동한다. 시작을 확인하려면 heroku logs 명령이 유용합니다.
    $ heroku logs
    

    GitLab WebHooks에 등록



    푸시 통지하고 싶은 GitLab의 리포지토리 화면에 가서 Settings 메뉴를 열면 왼쪽에 「Web Hooks」라고 하는 메뉴가 있다.

    거기에 앞서 Heroku에서 발행한 호스트명 ​​+ config.json으로 지정한 route 의 URL + 통지하고 싶은 Chatwork의 룸 ID를 지정한다.

    이번 예라면 ぇ tp // 짱 t- mpぇ. 어리석은 p. 코 m/기 tぁb/호오 ks/0000000 이런 느낌.



    덧붙여 Chatwork의 룸 ID는 URL 말미의 rid를 제외한 숫자만.

    이것으로 무사히 푸시 통지가 Chatwork에 자동 투고된다.

    덤 : 병합 요청이나 Issue도 알리고 싶습니다.



    이번 chabot에서는 푸시에만 대응하고 있지만, 병합 리퀘스트나 Issue의 통지도 실시하고 싶었으므로, 스크립트를 조금 수정했다.
  • htps : // 기주 b. 코 m/자루/짱 t

  • /example/bots/gitlab_push.js
    /example/templates/gitlab_push.js

    이 2 파일을 그대로 덮어쓰면 OK.

    좋은 웹페이지 즐겨찾기