Skip to content
This repository has been archived by the owner on Aug 17, 2023. It is now read-only.

Redmine URL自動展開の削減 #154

Closed
4 of 5 tasks
shimizukawa opened this issue Aug 8, 2018 · 20 comments
Closed
4 of 5 tasks

Redmine URL自動展開の削減 #154

shimizukawa opened this issue Aug 8, 2018 · 20 comments

Comments

@shimizukawa
Copy link
Member

shimizukawa commented Aug 8, 2018

目的

  • Redmine URL展開がうざいので必要最小限にしてチャットが流れないようにしたい
  • URL展開をSlack管理者権限で削除する人が散見される(そのうち誤操作で人の発言削除しそうでこわい)ので、そうしなくてよい世界にしたい

入出力

入力

  • RedmineのURL
  • 例: https://project.beproud.jp/redmine/issues/63642#note-3

出力

  • MUST: チケットタイトル(いままでどおり)
  • MUST: Description等の付随情報(折りたたんで欲しい、無理なら表示しなくてよい、スレッドに投稿でも良いかもしれない)
    -> スレッドになった
  • チケットタイトルの行に担当者、ステータス、優先度、を含める
  • SHOULD: 8時間以内におなじURLをPOSTされたら、POSTした人にだけ見えるメッセージで「おなじURLの連続POSTだから再展開しないよ」と表示
  • HOPE: URLにコメントのハッシュ #note-3 が付いてたら、チケット本文ではなくコメントの方を表示してほしい(これは連続POSTとみなさない)

関連機能、影響範囲

  • たぶんなし

セキュリティ

  • なし

デモ方法

以下、ログ

shimizukawa [16:09]
RedmineのURLを貼るとチケットが展開されるじゃない?
https://project.beproud.jp/redmine/issues/63642

haro APP [16:10]
wan
haro環境にRedmine Nofitication用のsystemd timerを設定する
やる事
---------------

- haro環境に `redmine_notification.py` を実行する systemd timerの設定を行う

このチケットの対象としないこと
----------------------------------------

* systemd timerの設定をharoの構成管理入れる作業
* Redmine Notificationに関連するsystemd timerの設定などをドキュメントとして残す作業(別途haroのissue管理で行う)
担当者
wan
ステータス
終了
優先
通常

shimizukawa [16:10]
で、この展開されたやつを削除する、っていう運用をしてる人達がいるのだけど、じつはこれ役立ってないということなのだろうか

xiao [16:11]
個人的な感想を言うと、 description まで表示されると長すぎ感じがする
タイトル(とあとは担当者とステータスくらい?)でれば十分なんではないかなという
そんな感じです

shimizukawa [16:12]
あと、botのメッセージなので削除できる人は管理者権限を発揮してるのに気づいてるだろうか、っていう別の問題もある

altnight [16:12]
GitHubのissueやPRを貼るごとに全部展開されるのが長くて消すのはわりとする

shimizukawa [16:13]
削除する運用を自然にやってると、まちがえて人間の投稿もさくっと削除しそうでこわいんだよなー

tsutomu [16:13]
URLの展開、よく消しますね。必要性感じないときに。
全部、消すわけではないけど

shimizukawa [16:14]
URLの展開削除は自分の権限でできるので、まあお好きに (edited)
botの発言削除は、そのうち誤操作で他人の発言削除する流れなので、よくない
であればbotのチケット内容展開をみなおしたほうがよさそう
と、思うのだけど、どうだろう
description折りたためるといいよね。無理ならタイトルだけでいいよね
たぶん

xiao [16:16]
きっと

shimizukawa [16:17]
あとは、
`https://project.beproud.jp/redmine/issues/63642#note-7` ってなってたら、descriptionじゃなくnoteの内容表示してほしい(便乗

haro APP [16:17]
wan
haro環境にRedmine Nofitication用のsystemd timerを設定する
やる事
---------------

- haro環境に `redmine_notification.py` を実行する systemd timerの設定を行う

このチケットの対象としないこと
----------------------------------------

* systemd timerの設定をharoの構成管理入れる作業
* Redmine Notificationに関連するsystemd timerの設定などをドキュメントとして残す作業(別途haroのissue管理で行う)
担当者
wan
ステータス
終了
優先
通常

shimizukawa [16:18]
あと同じチケットURLの自動展開は8時間以内に1回までにしてほしい(これは必要っぽい

xiao [16:18]
:chira:  https://github.com/beproud/beproudbot/issues/new
@pjxiao
Copy link
Contributor

pjxiao commented Aug 10, 2018

Description は、折りたたむことができない。スレッドに投げるがよさそう。

  • 5 行を超えると自動で折りたたまれるとドキュメントに記載されている 1
  • 折りたたみを手動で設定する方法は今の所なさそう 2
  • 5 行を越えても折りたたまれないこともあるが、原因不明 3

Footnotes

  1. https://api.slack.com/docs/message-attachments

  2. https://twitter.com/slackhq/status/458055719913140226?lang=en

  3. https://beproud.slack.com/archives/C02TXV8NY/p1533887926000248

@altnight
Copy link
Contributor

いくつかパターンを試してみた。スレッドに投げるパターンはまだ試せてない。説明欄の表示が長いという話は、直接表示をいじってみて試すのがいいんじゃないかなと思う

通常

説明欄が長いとちょっと流れすぎるかもという話
g154_normal

説明を100文字で切る

改行があるのであんまりコンパクトじゃないかも

g154_desc_100

タイトル、フィールドのみ

多少コンパクト。このくらいでもいいかもしれない
g154_title_and_fields

タイトルのみ

だいぶコンパクト。このくらいでもいいかもしれない
g154_title_only

@altnight
Copy link
Contributor

スレッドに本文を乗せる

よさそう
g154_thread

コードはこんな感じで、スレッドIDを指定するだけ sc.chat.post_message(channel_id, ticket.description, as_user=True, thread_ts=m.body['ts'])

@shimizukawa
Copy link
Member Author

スレッドいいね

ちなみに、RedmineからSlackへの通知時にうまいボリュームにできないかなーとpluginをいじったときの差分がこれ
shimizukawa/redmine-slack@09f159a

@altnight
Copy link
Contributor

チケットステータスのfield等もスレッドに移動するかもしれない。しないかもしれない。

@pjxiao
Copy link
Contributor

pjxiao commented Aug 14, 2018

スッドレ +1

@ghost
Copy link

ghost commented Aug 14, 2018

スレッド+1

チャンネルに直で出す場合多くても3行くらいにまとまっていてほしいが、いい感じにサマリする手段がなさそうなのでスレッドに全部出しちゃう方が手っ取り早い

@altnight
Copy link
Contributor

altnight commented Aug 14, 2018

fields にいれている情報はタイトルにいれて1行でまとめるのもよいかもしれない by shimizukawa

例: [altnight][新規][通常]Test Issue

@altnight
Copy link
Contributor

タイトルに各種情報をいれて1行表示

こうなる
g154-ttitleinfo

@altnight
Copy link
Contributor

タイトルをテキスト表示

少し表示がさびしいかも?リンクになっている方が気持ちわかりやすい
g154-title-text

タイトルを channel に戻す

sc.chat.post_message(channel_id, p, as_user=True, thread_ts=message.thread_ts, reply_broadcast=True) というように reply_broadcast をつけるとスレッドの発言をチャンネルにもどせる(slacker 0.9.65 で対応されてるけど、pypiではなくGitHubからダウンロードする必要がある)。
表示としては気持ちいまいち
g154-title-broadcast

@altnight
Copy link
Contributor

通常発言+リンク

text=<redmineurl/issues/12344|#12345: [担当者なし][通常][新規] Test Issue> というようなシンタックスで書けばリンクになる。
わりとよさそう

g154-text-link

@altnight
Copy link
Contributor

スレッドはbotの発言につける

たしかにこのほうがすっきり

g154-thread-botmessage

@shimizukawa
Copy link
Member Author

良い感じ!!

現状

  • MUST: チケットタイトル(いままでどおり)
  • MUST: Description等の付随情報(折りたたんで欲しい、無理なら表示しなくてよい、スレッドに投稿でも良いかもしれない)
    -> スレッドになった
  • チケットタイトルの行に担当者、ステータス、優先度、を含める(NEW!)
  • SHOULD: 8時間以内におなじURLをPOSTされたら、POSTした人にだけ見えるメッセージで「おなじURLの連続POSTだから再展開しないよ」と表示
  • HOPE: URLにコメントのハッシュ #note-3 が付いてたら、チケット本文ではなくコメントの方を表示してほしい(これは連続POSTとみなさない)

@altnight
Copy link
Contributor

  • #note-x はほしいのであとで対応しようかなーと
  • 8時間以内に〜 の件はchannelの履歴をみて判定すればできそうだけどちょっと面倒そうなのでパスして別issueにします

@altnight
Copy link
Contributor

note を展開

ticket.journals.values() から更新履歴(notes)を取得して表示
動作的に問題なさそう
g154-note-expand

@shimizukawa
Copy link
Member Author

shimizukawa commented Aug 16, 2018

image
botが提供してくれたほうのリンクから #note-2 がなくなってた

@altnight
Copy link
Contributor

TODO:

  • リンクに "note-xをつけて表示みてみる
  • 更新時にコメントの本文がないときは (本文なし) というような表示をする
    • チケット説明に fallback してもあまりうれしくはなさそう
    • スレッド返信しないと「バグかな?」と思われそう(挙動が変わる理由は外部からみえない)
    • (本文なし) みたいな説明しておいたほうが未開発発展途上感あって変更しやすそう

コードを整理したらPR予定。あといちおう仕様を簡単にまとめておきたい。

@altnight
Copy link
Contributor

今回の対応

  • Redmine URL が含まれている場合、通常の返信後に説明文をスレッドでリプライする
    • 説明文があるとき: チケットの説明文
    • コメントがあるとき: コメントの本文
    • 説明の本文がないとき: (本文なし)
    • コメントの本文がないとき: (本文なし)
  • コメントあるかどうかの判定
    • issues/xxxxx-#note-N を正規表現で取得できるかどうか

@altnight
Copy link
Contributor

@shimizukawa
Copy link
Member Author

やったぜ!
altnight++ botカイゼン

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants