Vulsがchatworkにも通知できるように実装してみました。今までメール,slack,hipchat,strideでしたが、やはりchatwork導入している企業さん結構多いので、この際作ったらバズりそうと予想してました。(ちなみにMANABIYAでも告知はしてました)
個人的にGo勉強していますが、慣れということでVulsからチャレンジも兼ねて作ってみました。
■ChatWork support #634
https://github.com/future-architect/vuls/pull/634
4つほど修正。神戸さんからmessageの部分でfmt.Sprintf使うと分かりやすいとのことで修正しました。(こんなにキレイになるんですね)
・fmt.Sprintf
https://golang.org/pkg/fmt/#Sprintf
Goの静的型付けにおいてstringと他の型をstring型として一緒に扱うことができる関数ですね。
・Before
1 |
message = serverInfo + "[info]" + "[title]" + `https://nvd.nist.gov/vuln/detail/` + vinfo.CveID + " " + strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64) + " " + "(" + severity + ")" + "[/title]" + vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value + "[/info]" |
・After
1 2 3 4 5 6 |
message := fmt.Sprintf(`%s[info][title]"https://nvd.nist.gov/vuln/detail/%s" %s %s[/title]%s[/info]`, serverInfo, vinfo.CveID, strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64), severity, vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value) |
■ChatWorkでのテスト
とまあ、初めはめちゃくちゃカオスでしたが….
このように見やすく!!!
chatworkはhtmlタグが使えないためリンクは挫折しました。。(対応してないぽい)slackのようにスレッド形式ならもっと分かりやすく通知できましたが、chatworkにはなんせそんなものがないので。毎回ホスト名&OS情報を出してこの脆弱性どこのホストだよ!とならないようにしてみました。
■まとめ
今までVulsRepoのコントリビュータでしたが、ついに本家のコントリビュータになれて嬉しい!!!!Goも早く慣れていきたいので、この調子で今後もコントリビュート頑張りやす!!
※サポートしてくれた かずみんとその他Goできる友人サンクス!そしてちょんまげさんもお忙しいところありがとうございました!)
0件のコメント