GitHub Issuesの各Issueをエクスポートする方法を調べた際の記録です。
GitHub.comから簡単にエクスポート出来るといいんだけど・・・。
今は出来ないみたい。
別の方法を調べてみたよ。
現状はGitHub.com上の操作ではエクスポートできないため、クライアントツールからの操作でエクスポートする必要があります。
GitHub CLIのgh issue listを使う
GitHub CLIを使えば、GitHubのIssue操作なども可能です。
GitHub CLI について - GitHub Docs
GitHub CLI は、すべての作業を 1 か所で行うことができるように、pull request、issues、GitHub Actions、およびその他の GitHub 機能をターミナルに集めたコマンドライン ツールです。
※issue関係だけでなく、pull requestやprojectsなどgithub関連の機能をCLIで操作可能です。
最初にissue関係の使い方です(gh issue –help)。
USAGE
gh issue list [flags]
ALIASES
ls
FLAGS
--app string Filter by GitHub App author
-a, --assignee string Filter by assignee
-A, --author string Filter by author
-q, --jq expression Filter JSON output using a jq expression
--json fields Output JSON with the specified fields
-l, --label strings Filter by label
-L, --limit int Maximum number of issues to fetch (default 30)
--mention string Filter by mention
-m, --milestone string Filter by milestone number or title
-S, --search query Search issues with query
-s, --state string Filter by state: {open|closed|all} (default "open")
-t, --template string Format JSON output using a Go template; see "gh help formatting"
-w, --web List issues in the web browser
INHERITED FLAGS
--help Show help for command
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
EXAMPLES
$ gh issue list --label "bug" --label "help wanted"
$ gh issue list --author monalisa
$ gh issue list --assignee "@me"
$ gh issue list --milestone "The big 1.0"
$ gh issue list --search "error no:assignee sort:created-asc"
LEARN MORE
Use `gh <command> <subcommand> --help` for more information about a command.
Read the manual at https://cli.github.com/manual
Issueを出力するためには、該当リポジトリ内でgh issue listを実行します。
# 準備(ログイン、クローン)
gh auth login
gh repo clone https://github.com/XXXXX.git
cd XXXXX.git
# 基本
gh issue list
# 件数増加&全ステータス
gh issue list --limit 1000 --state all
# 全ステータス&フィールド指定
gh issue list --state all --json 'number,title,body,state,createdAt'
フィールド指定すればコメントも出力されます。
→ しかし、JSONで非正規な形状っぽいので整形はちょっと一工夫が必要です。
github-artifact-exporter
続いて、GUI操作も可能な「github-artifact-exporter」を使う方法です。
Build software better, together
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over...
※現在はメンテナンスが凍結されているようです。
しかし2024年時点では問題なく利用することが出来ました!
起動して次のパラメータを入力することで簡単にCSVやJSON形式などで出力可能です。
- Token(Personal Access Tokenのこと)
- Owner(Organizationのこと)
- Repository
必要に応じてSearch条件を指定可能です。
また、CSV指定時に出力されるフィールドは次の通りです。
- author.login
- createdAt
- number
- labels
- state
- title
- body
- updatedAt
- milestone
- closedAt
- assignees.login
- comments.author.login
- comments.body
- comments.createdAt
添付ファイルこそ出力はされないものの、コメントもいい感じで出力され、必要十分な内容に思えます。
※CSVファイルをそのままExcelで開くと文字化けするため、UTF-8のBOM付に変換しましょう!
最後に
本記事ではGitHub Issueのエクスポートについてご紹介しました。
- github-artifact-exporterは簡単です(しかしメンテナンスは凍結中)
- github cliでも可能ですが、フィールド処理は手を加えないと扱いにくいかもしれません。
→ その分、柔軟ということなので、作りこめば、添付ファイルもダウンロードできるかもしれません。IssueのREST APIもありますからね。
最後までご覧いただき、ありがとうございました!
コメント