LoginSignup
3

More than 5 years have passed since last update.

最新のマイルストーンの自分にアサインされている issue の一覧のページを開く

Last updated at Posted at 2016-03-31

概要

最新のマイルストーンの自分にアサインされている issue の一覧ページを開くコマンド yarukoto を作りました。

ブックマークでも同じようなことが出来ますが、マイルストーンが変わると URL も変わってしまうので、ときどき作りなおす必要がありました。

yarukoto コマンドではリポジトリの最新のマイルストーンを取得して URL を生成し、ブラウザでページを開きます。

コンソールに一覧を出力してもいいのですが、内容を確認したかったり、Toggle や ZenHub などの連携ツールを使ったりしているのでブラウザで見たかった感じです。

朝会の前に叩くと良い感じでした。

コード

CoffeeScript と ghi を使っています。

yarukoto
#!/usr/local/bin/coffee
execSync = require("child_process").execSync

getMilestone = (path) ->
  ghiOutput = execSync("ghi milestone -v", {
    "cwd": path
  }).toString "utf8"

  # #<issue number>: <milestone name> にマッチさせて <issue number> でソート
  matches = ghiOutput.match(/^#[0-9]+: .+$/mg)
    .map (m) -> m.match(/^#([0-9]+): (.+)$/)
    .sort (a, b) -> parseInt(b[1]) - parseInt(a[1])

  # 最新の milestone の名前を返す
  matches[0][2]

openRecentMilestone = (assignee, repo, path) ->
  nextVersion = getMilestone path
  queries = [
    "is:open"
    "is:issue"
    "assignee:#{assignee}"
    "milestone:#{nextVersion}"
  ]
  url = "https://github.com/#{repo}/issues?q=#{queries.join("+")}"
  execSync "open #{url}"
  console.log "#{path}: #{nextVersion}"

openRecentMilestone "YOUR GITHUB USERNAME", "YOURCOMPANY/REPONAME1", "/path/to/repository"
openRecentMilestone "YOUR GITHUB USERNAME", "YOURCOMPANY/REPONAME2", "/path/to/repository2"

/usr/local/bin/yarukoto として保存して出社時に yarukoto します。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3