1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

査読コメントをGitHub Issuesに落として手を付けやすくする

Posted at

こんにちは、キャベツです。
査読のメールが返ってきたとき、どこから始めるか分からない/終わりが見えないせいで着手が遅れることがあります。
優先度付けも、ToDo化も、後回しになりがち(私だけ?)。
なので、査読テキスト → 優先度付きTODO → YAML → まとめてGitHub Issueまでを、さっと回す手順を書いておきます。
ARM(M1/M2/M3)のMacを使っています。

ゴール

  • 査読コメントを手を動かせる粒度に分解
  • YAMLにして
  • ghIssuesを一括作成
  • (必要なら)Projectsで進捗確認できるようにする

↓こんな感じ(例です)
image.png

0) 用意するもの

  • GitHub CLI(gh
  • yq(Mike Farah v4)
  • jq

macOS なら:

brew install gh yq jq
gh auth login

1) ChatGPT で TODO(優先度付き) YAML を作る

査読テキストをそのまま渡して、下のように頼みます。

  • この査読コメントを、すぐに対応できる部分とそうでない部分に段落や文ごとに分けて、TODOにしてください
  • 英日併記GitHub Issue 用の title, body, labels を出力
  • titleは [Reviewer N] [要約]/[Summary]
  • 元の英文は省略していないものを必ず載せる。
  • さらに細かく分けたTODOもbodyに載せる。
  • 出力は revise_issues.yaml(後でそのまま流し込みたい)
  • ラベルは、easy, medium, difficult, doc, figures, methods など

ラベルは運用に合わせて。例:
reviewer-1, reviewer-2, doc, figures, methods, benchmark, reproducibility, comparison, quick-fix など。

2) YAML を保存

「Issueを登録したいリポジトリ」をクローンしたディレクトリ(フォルダ)に revise_issues.yaml を保存します。
Overleafに課金してリポジトリ化しているなら、それをクローンするのがおすすめ。

3) スクリプトで一括 Issue 化

必要なファイルを作成

「Issueを登録したいリポジトリ」をクローンしたディレクトリ(フォルダ)にcreate_issues_from_yaml.sh を置く。

create_issues_from_yaml.sh
#!/usr/bin/env bash
# Usage: ./create_issues_from_yaml.sh /path/to/revise_issues.yaml
set -euo pipefail

YAML_FILE="${1:-revise_issues.yaml}"

# 必要コマンド確認
for c in gh yq jq; do
  if ! command -v "$c" >/dev/null 2>&1; then
    echo "Error: $c not found"; exit 1
  fi
done

# 認証(必要なら)
gh auth status || gh auth login

# ラベル作成(なければ作る)
echo "Ensuring labels exist..."
set +e
yq -o=json '.issues[].labels' "$YAML_FILE" \
  | jq -r '.[]?' | sort -u | while read -r lbl; do
      [ -z "$lbl" ] && continue
      if gh label view "$lbl" >/dev/null 2>&1; then
        echo "  ✔ $lbl"
      else
        gh label create "$lbl" --color EDEDED --description "$lbl" >/dev/null 2>&1 \
          && echo "  ➕ $lbl" \
          || echo "  • skip: $lbl"
      fi
    done
set -e

# Issue 作成
echo "Creating issues..."
yq -o=json '.issues[]' "$YAML_FILE" | jq -c '.' | while read -r issue; do
  title=$(echo "$issue" | jq -r '.title')
  body=$(echo "$issue" | jq -r '.body')
  echo "→ $title"

  label_args=()
  while read -r l; do
    [ -z "$l" ] && continue
    label_args+=(--label "$l")
  done < <(echo "$issue" | jq -r '.labels[]?')

  gh issue create --title "$title" --body "$body" "${label_args[@]}"
done

echo "Done."

実行権限を付ける。:

chmod +x create_issues_from_yaml.sh

実行

リポジトリ直下で(推奨)

cd your-repo
./create_issues_from_yaml.sh ./revise_issues.yaml

4) Projects で見る(任意)

Table か Board を開いて、+ Add items → さっき作った Issue を追加。
私はKanbanテンプレートを使いました。(Backlogの下にあるAdd itemをクリック→+をクリック→Add item from repository→さっき作った Issue を追加。)

image.png

運用メモ

  • タイトルは揃える:[Referee N] 要約 / Summary
    並べたときに判別しやすい。
  • 同趣旨のTODOは統合:片方をクローズ、本文は統合。

トラブル対策

  • リポジトリ解決に失敗 → リポジトリ直下で実行 or GH_REPO を設定。

おわりに

「レビュー来た、でも腰が重い」を減らしたい人向けのメモでした。
YAML にしてしまえば、あとはポチポチ頑張っていくだけ。早いです(当社比)。
ちょっとしたメモもIssueのコメントにつけてしまえば「なぜこんな考えになったんだっけ?」もあとから見返しやすいです。
もっと簡単な方法があるっぽいですが(CSV→Kanbanに直接インポート)、うまくいかなかったのでこの方式(YAML→Issues→Kanban)を紹介。

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?