Slack App(issue-alize for Redmine, Backlog)의 개발

개시하다
Slack 메시지를 통해 Redmine의 issue를 등록하는 프로그램을 개발했습니다.
issue-alize for Redmine
issue-alize for Backlog
그 슬랙 앱을 소개하고 개발할 때 조금 곤란했던 점, 슬랙 앱 다이렉트로리 접속의 장점 등을 소개한다.
개발의 경과
  • 슬랙의 대화에서 자주 임무를 분배받아 Redmine에 수동으로 등록
  • 이때 슬랙의 정보를 복제하여 Redmine에 등록하는 것은 미칠 수 있는 작업
  • 이다.
  • Slack 메시지를 Issue로 Redmine에 로그인한 애플리케이션을 Slack App Directory에서 찾을 수 없음
  • 슬랙 앱이 슬랙에 Redmine 역방향 변경 사항을 알린다...
  • 구현된 기능
  • 설치 시
  • SlackApp을 설치한 후 issue-alize 설정 화면으로 이동하여 Redmine 정보와 연결
  • 슬랙 사용 시
  • 슬랙 메시지의 단축키 메뉴에 응용 프로그램 추가 메뉴
  • 메뉴를 실행하면 대화 상자가 표시됩니다
  • .
  • 대화상자에서 Submit 후 Redmine Issue
  • 를 등록합니다.
  • 슬랙 채널에 Redmine Issue URL 게시
  • AppHome 화면에서 issue-alize 설정화면으로 이동

  • 시스템 구성
  • 설정 화면은 웹 애플리케이션으로 구성
  • 화면 설정 이외에 AWS의 API Gateway+Lambda로 구성
  • 부팅/중지가 필요 없는 유지 관리!
  • 람바다 자체는 사용자가 적을 때 거의 돈을 쓰지 않는다!
  • 개발이 좀 어려워요.
    다음은 이번 개발의 주요 화면.

    개발을 돌이켜보면 다음과 같은 몇 가지 어려움이 있다.
    딱한 곳
    주요 원인
    대응 방법
    100개 이상의 Redmine 항목이 있는 경우 선택할 수 없는 항목이 발생했습니다.
    최대 Static Option 100
    문자열을 필터링하여 항목 축소
    선택한 항목에 따라 Redmine API에서 Assigne 옵션이 생성되지만 때로 늦을 수 있습니다.
    항목이 선택되면 Redmine에서 사용자 목록,views를 가져옵니다.UI 를 업데이트로 다시 쓰는 프로세스가 수행되었지만 그에 따라 다시 작성되었습니다.
    대책이 없다
    슬랙이 응답을 받는 데 3초 이상 걸리는 경우가 있어 오류가 발생할 수 있습니다
    람보다에 설치됐기 때문에 초기 동작이 느려요
    처리는 수락한 후 가능한 한 비동기 처리로 처리한다.Lambda를 사용하지 않고 일반 웹 서비스를 사용합니다(지원되지 않음)
    슬랙 메시지의 멤버는 <@XXXXXXXXXXX>처럼 레드마인 아이슈에 직접 표시됩니다.
    Slack 채널의 멤버에 대한 자세한 정보가 저장되어 있지 않기 때문에.
    Backlog로 데이터를 전송할 때 구성원을 삭제하거나 Redmine로 변환한 사용자(해당되지 않음)
    API 키를 보관해야 합니다.
    Redmine 은 API 키 인증만 받을 수 있습니다.
    대책이 없다.그러나 Backlog는 API 키를 사용하지 않고 OAuth 인증을 통해 연결됨
    슬랙의 인증 처리 등으로 프로그램이 복잡해졌어요
    프레임을 사용하지 않으므로 Slack 웹 API만 사용합니다.
    Bolt 프레임워크 사용(지원되지 않음)
    Slack App Directory에 로그인
    신청부터 등록, 심사까지
  • 4개월 정도 걸렸어요
  • 실제 어플리케이션 설치 및 사용 검토
  • 검토에 필요한 환경 준비(이번은 Redmine의 테스트용 환경과 계정 등)
  • 대응 영어
  • 3시 정도의 지적이 있어요.
  • 어플리케이션 사양에 불필요한 Scape(실제 필요 없음) 지적
  • 슬랙앱 대화 상자에 다른 앱의 API 키가 삽입됐다는 지적
  • 기타 동작 불량 영향 지적
  • 지적된 부분이 재현되지 않으면 진지하게 교환
  • 신청, 심사에 대한 비용이 발생하지 않았음
  • 규약과 프라이버시 정책을 사용해야 하는 문서
  • 응용프로그램의 UI는 영어로 표시되고 지원 언어는 일본어와 영어로 표시됩니다
  • Slack App Directory에 신청하시면 좋을 것 같아요.
  • Slack App Directory에 로그인하면 전 세계에서 애플리케이션이 검색 대상이 됩니다.(너무 좋아!)
  • 지원 언어를 영어로 바꾸고, UI를 영어로 바꾸면 실제 사용자는 8명 정도만 일본 이외의 사용자!(issue-alize는 유럽이 많다)
  • Slack App Directory 로그인을 통해 사용자가 많이 늘었습니다.
  • 과제.
  • Bolt 사용
  • 볼트는 람보를 사용할 수 있습니까?조사
  • 슬랙 사용자 ID와 Redmine 사용자 ID의 링크 기능(슬랙의 구성원을 Redmine으로 바꾸는 사용자)
  • API 키 인증 이외의 경우 Redmine 인증
  • Backlog처럼 OAuth 인증을 할 수 있다면 더욱 좋습니다
  • 광고 같은 거 가입하면 이득 하나도 없잖아
  • (추가) 앞으로 하고 싶은 슬랙 앱.
  • 슬랙을 위한 계층 주소록을 만들고 싶어요.
  • 조직 단위로 메시지를 보낼 수 있는 정보
  • SlackApp을 개발하고 있습니다. -
  • 좋은 웹페이지 즐겨찾기