Discourse Jira

:discourse: 요약 Discourse Jira는 프로젝트, 이슈 유형, 필드, 이슈 상태를 동기화하고 이슈를 관리합니다.
:hammer_and_wrench: 리포지토리 링크 https://github.com/discourse/discourse-jira
:open_book: 설치 가이드 Discourse에 플러그인 설치하는 방법

기능

  • Jira 프로젝트, 이슈 유형, 필드 및 필드 옵션이 자동으로 동기화됩니다.
  • 동적 이슈 생성 양식을 사용하여 Discourse 게시물에 대한 새 Jira 이슈를 생성합니다.
  • 기존 Jira 이슈를 Discourse 게시물에 연결합니다.
  • 웹훅을 사용하여 Jira 이슈 상태를 동기화합니다.

스크린샷

게시물 메뉴

설정

플러그인을 활성화하기 전에 아래 사이트 설정 값을 설정하세요.

  • discourse_jira_url: Jira 인스턴스의 URL을 입력하세요. / 기호로 끝나야 합니다.
  • discourse_jira_username: 이슈를 생성할 사용자의 사용자 이름입니다.
  • discourse_jira_password: 이슈를 생성하는 사용자에게 할당된 API 키입니다. 비밀번호도 작동할 수 있지만 안전하지 않으며, Atlassian에서 해당 API를 비추천(deprecated) 처리했습니다.
  • discourse_jira_enabled: Discourse에서 Jira 플러그인을 활성화합니다.
  • discourse_jira_allowed_groups: Jira 플러그인 기능에 액세스할 수 있는 그룹을 선택하세요. 기본값은 관리자(admin)와 모더레이터(mods)입니다.

웹훅

Jira에서 들어오는 웹훅을 검증하기 위해 비밀 토큰을 설정하세요.

  • discourse_jira_webhook_token: 이 토큰은 웹훅의 ‘t’ 쿼리 매개변수로 전달되어야 합니다.

예를 들어, 웹훅 토큰이 supersecret이고 기본 Discourse URL이 discourse.example.com이라면, Jira 인스턴스의 웹훅 설정에서 웹훅 URL을 https://discourse.example.com/jira/issues/webhook?t=supersecret 으로 설정해야 합니다.

웹훅이 트리거되고 출력된 바디가 올바른지 확인하는 것만 원한다면, RequestBin이나 Webhook.site와 같은 외부 웹사이트를 사용하여 임시 웹훅 URL을 설정하는 것도 좋습니다.

디버깅

discourse_jira_verbose_log: 이 설정을 활성화하면 들어오는 웹훅과 나가는 API 요청의 페이로드를 로그에 기록합니다.

:discourse2: 저희가 호스팅하고 계신가요? 이 플러그인은 저희의 엔터프라이즈 플랜에서 사용할 수 있습니다.

10개의 좋아요

@vinothkannans 사용자들이 실제로 티켓 상태를 볼 수 없다는 점을 확인했습니다. 현재 관리자만 상태를 볼 수 있습니다. 사용자에게 "상태"를 더 명확하게 표시할 수 있는 방법이 있을까요?

한 가지 옵션은 해당 인용 블록을 표시되게 하는 것이며, 다른 옵션으로는 Jira 상태를 태그에 매핑하고 토픽 태그가 티켓 진행 상황(#backlog, #in-progress, #complete 등)을 반영하도록 업데이트하는 것입니다.

Jordan의 의견에 덧붙여, 이 플러그인을 개선하기 위한 몇 가지 추가 아이디어가 있습니다.

  1. JIRA 티켓 분리 기능. 게시글에 연결한 JIRA 티켓을 분리하거나 삭제할 수 있는 옵션을 찾지 못했습니다.
  2. 연결된 JIRA 티켓을 볼 수 있는 그룹 선택. 현재는 사이트 관리자만 볼 수 있는 것으로 보이지만, 이를 볼 수 있는 추가 그룹을 하나 이상 선택할 수 있는 옵션이 있으면 좋겠습니다.
  3. 가시성 수준. 관리자가 아닌 사용자에게 티켓의 어떤 부분이 표시될지 지정할 수 있는 기능. 예를 들어, 모든 그룹이 티켓 번호와 상태는 볼 수 있지만, 민감한 정보를 포함할 수 있는 티켓 제목은 볼 수 없도록 하고 싶습니다. 그런 다음 티켓 제목을 볼 수 있는 신뢰할 수 있는 그룹을 지정할 수 있습니다.
2개의 좋아요

제안해 주신 사항들이 이 플러그인의 경험을 크게 향상시킬 것입니다.

관리자가 아닌 특정 그룹에게만 콘텐츠가 공개되도록 하는 기능이 정말 필요합니다.

이 기능의 OpenProject 버전이 있나요? 우리는 작업을 관리하기 위해 OpenProject를 사용 중이므로, 있으면 좋겠습니다.

@jordan-violet @colin.mckibben 플러그인을 더 유용하게 만드는 좋은 제안들이네요. 다음에 작업할 때 이 점을 염두에 두겠습니다.

1개의 좋아요

안녕하세요, 플러그인 설정에 대해 질문이 있습니다. 이슈를 생성하거나 첨부할 때 500 오류가 발생하고 있어서 설정이 완전히 올바르지 않은 것 같습니다. 제가 뭘 잘못했을까요?

먼저, 평소 제 Jira 인스턴스에 접근할 때 사용하던 주소를 discourse jira url에 복사하여 붙여넣었습니다. 다만 선택한 Jira 뷰에 따라 URL이 달라지기 때문에 URL이 정확한지 확신은 없습니다.

다음으로, discourse jira username에는 임의의 값을 설정하고, 생성된 Atlassian API 토큰에서 복사한 값을 discourse jira password에 붙여넣었습니다.



그 후 Jira 웹훅을 추가하고, Jira 웹훅 URL을 제 discourse 인스턴스 URL 뒤에 /jira/issues/webhook?t=을 붙인 값으로 설정했습니다.

웹훅 시크릿을 설정하고, 해당 시크릿을 복사하여 플러그인 설정 필드인 discourse jira webhook token에 다시 붙여넣었습니다.

어떤 생각이 드시나요? 도움을 많이 부탁드립니다. 감사합니다.

Discourse에서 제대로 작동하는 플러그인 설정을 공유해 주실 수 있을까요? (물론 비밀번호나 토큰은 제외하고요.) 어떻게 설정하면 되는지 확인하고 싶습니다. 감사합니다!

웹훅 토큰을 Jira 웹훅 설정의 URL에 다시 붙여넣어 https://example.com/jira/issues/webhook?t=abcdefghijk라고 표시되도록 했고, 또한 discourse_jira_url은 경로 없이 https://modernsquared.atlassian.net/여야 합니다.

@vinothkannans 한 가지 더 질문이 있습니다. 토픽에 이슈를 연결한 후, 연결된 이슈를 변경하거나 단순히 연결을 제거/삭제할 수 있나요? 만약 불가능하다면, 이 기능을 구현하는 것에 대해 생각해 본 적이 있으신가요?

@mikael.gundhus 감사합니다. 플러그인이 Jira에 연결되도록 설정했습니다.

하지만 이상한 문제가 발생했습니다. 이 문제를 겪고 있는 사람이 저만인지 확실하지는 않지만, ‘Create and Attach issues’ 버튼이 뒤바뀌어 있는 것 같습니다. ‘Create Issue’ 버튼을 클릭하면 플러그인이 이슈 첨부 화면으로 이동합니다:

그리고 ‘Attach issue’ 버튼을 클릭하면 플러그인이 이슈 생성 화면으로 이동합니다: MS-155는 Jira에 이미 존재하는 이슈입니다. Jira에 존재하지 않는 새로운 이슈, 예를 들어 MS-200을 입력하면 An error occurred: You are not permitted to view the requested resource.라는 메시지가 표시됩니다.

@mikael.gundhus 네, 기존 첨부 파일을 제거할 수 있는 옵션이 있어야 합니다. @ckshen 모달 창에 제목이 잘못 표시되는 것 같습니다. 다음 반복에서 이 부분을 수정하겠습니다.

관리자/모드가 아닌 사용자에게도 접근할 수 있도록 할 계획이 있나요? 내부 팀들이 운영을 Discourse로 이전하길 원하고 있으며, 현재로서는 Jira 도구를 사용하려면 사이트 전체에 대한 모더레이션 권한을 부여하는 것 외에는 방법이 없습니다.

4개의 좋아요

이 플러그인을 그룹 권한(Group permissions)으로 업데이트했습니다! 기본값은 Admins이며, 항상 Admins를 포함해야 합니다. 하지만 이 업데이트로 이제 Admin 권한이 없는 사용자들도 Jira 티켓을 만들 수 있습니다. 활용해 보세요!

5개의 좋아요

여러분 안녕하세요,

Jira 서버 또는 Datacenter와 이 플러그인을 성공적으로 연동하신 분이 계신가요?

첨부 옵션을 찾을 수 없고, 로그에 오류가 표시됩니다.

Job exception: DiscourseJira::InvalidURI

1개의 좋아요

지금까지 이 플러그인은 Jira Cloud용 API를 사용하여만 구축되었습니다. 따라서 Jira DC에서는 성공적으로 작동하지 않을 수 있습니다.

Jira Cloud REST 문서: https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-rest-api-2-issue-createmeta-get
Jira DC/Server REST 문서: https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples

1개의 좋아요

Natalie님, 감사합니다. 보안 설정에서 허용된 내부 호스트에 우리 호스트를 추가한 후, 링크 설정과 이슈 생성이 가능해졌습니다. 이는 Jira 내부 인스턴스를 사용하는 분들에게 유용한 정보가 될 것 같습니다. 댓글 동기화는 아직 진행 중이지만, 설정 문제인 것으로 보입니다.

3개의 좋아요

이 기능이 Jira Service Management 프로젝트에서도 작동하나요?

#jira와 reactions 사이에 호환성 문제가 있는 것 같습니다.

1개의 좋아요

자체 호스팅한 Jira Datacenter 인스턴스에서 이 방법을 시도해 보았지만 막혀 있는 것 같습니다. 도움을 주시면 정말 감사하겠습니다.

요약 - 201과 JSON을 반환해야 하는데 403과 HTML이 반환되고 있습니다:

`/var/www/discourse/plugins/discourse-jira/lib/discourse_jira/api.rb:63:in ‘DiscourseJira::Api.getJSON’`

  • Jira 개인 액세스 토큰을 생성했습니다.
  • API 경로로 /, /rest, /rest/api, /rest/api/latest를 여러 번 시도해 보았습니다 :left_arrow: 마지막 경로가 작동하는지 확인했습니다.
  • 어떤 설정을 하든 JSON 대신 HTML이 계속 반환됩니다.

플러그인 설정에서 무언가 잘못하고 있는 것 같지만, 어디가 문제인지 파악이 되지 않습니다. JIRA Datacenter에서 이 기능을 성공적으로 작동시킨 분이라면, 조언을 구할 수 있을까요?

감사합니다

Bruce