自作ツールの紹介です。
作ったもの
GitHub で管理している任意のリポジトリにある issue の中で指定したラベルが付いているものだけをリストアップして Markdown に整形するデスクトップアプリを作りました。
フォームに入力した内容は次回起動時に復元されるので微妙に便利です。
モチベーション
弊社は GitHub の issue で課題管理をしているのですが、時々特定のラベルがついた issue だけをリストアップしたくなります。
例えば "バグ" というラベルがついたものだけをリストアップしてユーザーに公開したい場合とかです。 ウェブに公開するので Markdown とかで生成されるとなお良しです。
こういったことをするために簡単に GitHub の issue で特定のラベルがついたものをリストアップしてウェブに公開できるツールが欲しくなったので作ったというわけです。
設計思想
- コマンドラインツールに慣れてない人でも使えるようにデスクトップアプリを作る
- 自動化にも使えたら便利だからコマンドラインツールも作る
- デスクトップアプリを簡単に作りたかったので Electron を使う
- HTML を生成するのはめんどいから Markdown を生成
大事にしたいのは誰でも使えるように作ることです。
既知の不具合ページなどはユーザーサポート部門の人が更新作業を行ったりしますが、多くの場合そういった部門の人はプログラマの様にコマンドラインツールに慣れていません。
しかしデスクトップアプリだけだと自動化に向きません。
なのでコマンドラインツール + デスクトップアプリという構成で作りたいと思います。
ただし、同じ機能を持ったものを2つ作るのは面倒なので、単純な機能を持ったコマンドラインツールを作って、そのフロントエンドとしてデスクトップアプリがいるという構成にします。
デスクトップアプリがコマンドラインツールを実行して結果を表示するみたいな考え方です。
使った技術
Electron
最近話題のやつ。 マジ便利。
package.json に以下のように書くと electron がインストールされてない環境でも npm start
するだけで起動できて便利です。
{
"scripts": {
"start": "electron main.js"
},
"devDependencies": {
"electron-prebuilt": "^0.35.0"
}
}
全体像はソースコード見てください。
highlight.js
シンタックスハイライトする奴。 markdown のシンタックスハイライトに使っています。
npm で入れて electron の環境で使う場合は レンダラープロセスの方で const hljs = require("highlight.js");
ってやらないとうまく動作しません。
npm で入れた場合に <script src="note_modules/path/to/highlight.js"></script>
的なことを html の方に書いても色々ロードする処理が index.js の方に書いてあるのでうまく動作しません。
アホなので3時間ぐらい悩みました。
全体像はソースコード見てください。
やりたいこと
より簡単に使用するために GitHub の API Token を GitHub の設定画面に行かなくても作れるようにするための便利ツールを作ればこのツール群は完成です。
作ったら更新します。