Discourse Jira

:discourse: 概要 Discourse Jira はプロジェクト、イシュータイプ、フィールド、イシューのステータスを同期し、イシューの管理を行います。
:hammer_and_wrench: リポジトリリンク https://github.com/discourse/discourse-jira
:open_book: インストールガイド Discourse へのプラグインインストール方法

機能

  • Jira のプロジェクト、イシュータイプ、フィールド、フィールドオプションが自動的に同期されます。
  • ダイナミックイシュー作成フォームを使用して、Discourse の投稿に対して新しい Jira イシューを作成します。
  • 既存の Jira イシューを Discourse の投稿にアタッチします。
  • Webhook を使用して Jira イシューのステータスを同期します。

スクリーンショット

投稿メニュー

設定

プラグを有効にする前に、以下のサイト設定の値を設定してください。

  • discourse_jira_url: Jira インスタンスの URL を入力します。末尾に / を付けてください。
  • discourse_jira_username: イシューを作成するユーザーのユーザー名。
  • discourse_jira_password: イシューを作成するユーザーに割り当てられた API キー。パスワードでも動作する可能性はありますが、安全ではなく、Atlassian によって API は非推奨となっています。
  • discourse_jira_enabled: Discourse 用 Jira プラグインを有効にします。
  • discourse_jira_allowed_groups: Jira プラグインの機能にアクセスできるグループを選択します。デフォルトは管理者とモデレーターです。

Webhook

Jira からの着信 Webhook を検証するための秘密トークンを設定します。

  • discourse_jira_webhook_token: このトークンは、Webhook の ‘t’ クエリパラメータとして渡されなければなりません。

例えば、Webhook トークンが supersecret で、Discourse の基本 URL が discourse.example.com の場合、Jira インスタンスの Webhook 設定で、Webhook URL を https://discourse.example.com/jira/issues/webhook?t=supersecret として設定します。

Webhook がトリガーされ、送信される本文が正しいかどうかを確認するためだけの場合は、RequestBinWebhook.site などの外部ウェブサイトを使用して、一時的な Webhook URL を設定することもできます。

デバッグ

discourse_jira_verbose_log: この設定を有効にすると、着信 Webhook と送信 API リクエストの両方のペイロードがログに記録されます。

:discourse2: 私たちでホストされていますか?このプラグインは、当社の Enterprise プランで利用可能です。

「いいね!」 10

@vinothkannans、ユーザーがこれらのチケットのステータスを確認できず、管理者のみが確認できることに気づきました。「ステータス」をユーザーにより見やすくするために何かできることはありますか?

1つの選択肢はもちろん、その引用ブロックを可視化することですが、Jiraのステータスをタグにマッピングし、トピックタグがチケットの進捗(#backlog、#in-progress、#completeなど)を反映するように更新できれば、それも素晴らしいでしょう。

Jordanの意見に付け加えると、このプラグインを改善するための追加のアイデアがいくつかあります。

  1. JIRAチケットを切り離す機能。投稿にリンクしたJIRAチケットを切り離したり削除したりするオプションが見つかりません。
  2. 添付されたJIRAチケットを表示できるグループを選択する機能。現在、サイト管理者にのみ表示されるようですが、表示できる追加のグループを1つ以上選択するオプションを希望します。
  3. 可視性レベル。管理者以外のユーザーにチケットのどの部分が表示されるかを指定する機能。たとえば、すべてのグループにチケット番号とステータスを表示し、機密情報が含まれている可能性があるチケットのタイトルは表示しないようにしたい場合があります。その後、チケットのタイトルを表示できる信頼できるグループを指定できます。
「いいね!」 2

このプラグインの体験を向上させるためのご提案、ありがとうございます。

コンテンツを管理者以外の特定のグループに表示できるようにする必要があると考えています。

これのOpenProject版はありますか?タスク管理にOpenProjectを使用しているので、あれば素晴らしいです。

@jordan-violet @colin.mckibben これらの提案は、プラグインをより便利にするための良い提案です。次回作業する際に考慮します。

「いいね!」 1

こんにちは、プラグインの設定について質問があります。問題を作成/添付する際に500エラーが発生しているので、設定が完全に正しくないと思います。何が間違っていたのでしょうか?

まず、Jiraインスタンスに通常アクセスする場所を discourse jira url にコピー&ペーストしましたが、Jiraの表示によってURLが異なるため、URLについては完全には確信が持てません。

次に、ランダムな discourse jira username を設定し、discourse jira password には生成されたAtlassian APIトークンからコピー&ペーストしました。



次に、Jira Webhookを追加し、Jira WebhookのURLを、私のDiscourseインスタンスのURLに /jira/issues/webhook?t= を追加したものに設定しました。

その後、Webhookシークレットを設定し、そのシークレットをプラグイン設定フィールド discourse jira webhook token にコピー&ペーストしました。

何か考えはありますか? 助けていただけると幸いです!ありがとうございます。

Discourse で動作するプラグイン設定を(パスワード/トークンなしで)共有していただけますか?どのように動作させるか参考にしたいです。よろしくお願いします!

Jira の Webhook 設定で Webhook トークンを URL にコピーしました。そのため、https://example.com/jira/issues/webhook?t=abcdefghijk のようになっています。また、discourse_jira_url はパスなしの https://modernsquared.atlassian.net/ である必要があります。

@vinothkannans もう一つ質問があります。トピックにアタッチされた課題を変更したり、アタッチメントを削除したりすることは可能ですか?もし不可能であれば、実装について検討したことはありますか?

@mikael.gundhus ありがとうございます。Jiraへのプラグイン接続に成功しました。

しかし、奇妙な点に遭遇しました。この問題に遭遇しているのが私だけなのか分かりませんが、「問題を作成して添付する」ボタンが逆に表示されているようです。問題を作成するボタンをクリックすると、プラグインは問題添付画面に移動します。

問題添付ボタンをクリックすると、プラグインは問題作成画面に移動します。MS-155はJiraに存在する問題です。新しい問題、例えばMS-200(Jiraに存在しない)を入力すると、「エラーが発生しました: 要求されたリソースを表示する権限がありません。」と表示されます。

@mikael.gundhus はい、既存のアタッチメントを削除するオプションがあるはずです。@ckshen モーダルウィンドウのヘッダーが間違っているようです。次のイテレーションで対応します。

管理ユーザー/モデレーター以外でも利用できるようにする計画はありますか?内部チームがDiscourseに移行したいと考えていますが、現状では、Jiraツールを使用する唯一の方法は、サイト全体のモデレーション権限を付与することです。

「いいね!」 4

このプラグインをグループ権限で更新しました!デフォルトで管理者を含み、常に管理者を含める必要がありますが、このアップデートにより、ユーザーは管理者レベルでなくても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を使用している人にとって役立つ情報だと思われます。コメントの同期はまだ作業中ですが、それは設定の問題だと考えています。

「いいね!」 2

この機能はJira Service Managementプロジェクトでも機能しますか?

jirareactions の間に互換性の問題があるようです

「いいね!」 1

私はこれを私たちのセルフホスト型のJira Data Centerインスタンスで試しましたが、何かがうまくいかないようです。ご助力いただければ幸いです。

要約すると、201とJSONを返すべきところ、403とHTMLが返されています:

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

  • JiraのPersonal Access Tokenを作成しました
  • APIのパスとして//rest/rest/api/rest/api/latestを試しました :left_arrow: 最後のものは動作することを確認済みです。
  • 何を試しても、JSONの代わりにHTMLが返されます。

プラグインの構成で何か間違っているのではないかと推測していますが、どこが間違っているのか分かりません。JIRA Data Centerでこれを動作させた経験のある方がいれば、ぜひお話を聞かせてください!

ありがとうございます

Bruce