👑
IssueをProjectのフィールドまで複製するGitHubCLI拡張機能を作った
はじめに
Issueを複製したいけど意外とGitHubのWebページやghコマンドには用意されておらず、
さらに筆者の場合はProjectに関連付いたフィールドもコピーしてほしく手入力するのはかなり面倒でした。
Issue属性のみ複製するCLIやGitHubActionsはありましたが「CLIでProjectのフィールドまで複製する」ものは存在していなかったので自作してみました。
今回作成のは「gh-issue-clone」というGitHub拡張機能です。
このように実行できます

できること
以下のようなLabelsやProjectが紐づいたIssueがあります

基本的な使い方
IssueのURLを指定することでそのリポジトリに複製したIssueを作成します
❯ gh issue-clone https://github.com/owner/repo/issues/56
タイトル/本文と右部の各属性についても一括でコピーされています

テンプレートを利用する
また、リポジトリにISSUE_TEMPLATEがあれば指定が可能で、テンプレートの内容を優先しそれ以外の項目を複製します
❯ gh issue-clone https://github.com/owner/repo/issues/57 --template "Bug report"
本文とLabelsはBug用テンプレートの内容でそれ以外の属性は複製されています

インストール
ghコマンドのインストールが必要ですので、公式に従ってインストールください
よしなに認証します
❯ gh auth login
# Projectまで複製する場合は権限の取得が必要です
❯ gh auth refresh --scopes project
今回作成した拡張機能をインストール
❯ gh extension install muleyuck/gh-issue-clone
インストールが完了すればgh issue-cloneで利用可能になります
❯ gh issue-clone --help
NAME:
issue-clone - clone GitHub issues from a given issue.
USAGE:
issue-clone [global options] [arguments...]
VERSION:
v0.2.1
GLOBAL OPTIONS:
--template string, -t string Issue Template Name
--help, -h show help
--version, -v print the version
まとめ
このIssueの情報を元に新たなにIssue作りたい、という時に手軽にIssueの複製ができるようになりました。
特にPrijectでタスク管理を行っている場合は痒い所に手が届く拡張機能になって快適さがかなり上がりました。
もし同じ悩みを持っている人役に立てれば嬉しいです。
参考
Discussion