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

More than 3 years have passed since last update.

ターミナルからGitHubラベルを作成・削除する簡単なCLIツール作った

Last updated at Posted at 2021-09-03

先日、この記事を読んで、確かにRepo作るとデフォルトのラベルとは別に必ず追加するなぁと。

実際、作ること自体は難しい作業ではないですが、複数のラベルを作成することが多いので、ちょいちょい面倒だなぁと思ってました。
はじめに、GitHub CLIにラベル作る機能があるかもしれないと、確認したところそれっぽいものはありませんでした。
https://cli.github.com/manual/gh_issue_create

なので、GitHub APIをチェックしました。
https://docs.github.com/en/rest/reference/issues#labels

APIのドキュメントによると、基本的にはoctokit.jsをインストールして、personal tokenを渡してインスタンスを作り、パラメータとして、ユーザーIDとラベルを作成・削除したレポジトリの名前に加えて、ラベルを作成したい場合はラベルの情報(ラベル名、ラベルの色、ラベルの説明)。削除したい場合はラベルの名前を渡せば良いようです。

現状、このツールで出来ることは以下の4つです。

複数の指定したラベルを削除する機能は近日中に追加する予定です。

ちなみ、constant.ts はこちらの記事を元にしています。

デモ

レポジトリ

使い方

# repoをクローン
$ git clone https://github.com/koji/github-label-manager.git
$ cd github-label-manager

# パッケージをインストール
# use yarn
$ yarn # install packages
$ yarn build # compile typescript
$ yarn start # run index.js

# use npm
$ npm install
$ npm run build
$ npm start

# buildしないでts-nodeで直接tsを実行
# or use ts-node
$ npx ts-node src/index.ts # this might be slow

補足

octkit.jsに加えて、ターミナルからの入力のためにpromptsを使っています。

一番最初にざっと機能を実装した時は、readline-syncを使っていました。
ただ、その名の通りsyncだったので、1つラベル作ってツール終了して、削除するときはまたツールを起動みたいな使うのが面倒な作りにしてしまったので、ラベル作成はレポ作ったときにやるくらいだけれど、この面倒さだと使わないなと思い、promptsに切り替えました。

ちなみに、ベースは typescript-starter を使って作りました。
ただ、後からDenoとかで作った方が良かったかなぁと。typescript-starterは悪くないんですが、自分のVSCodeのconfigとの相性が良くなかったみたいで、その部分を解消するのに結構時間が取られました

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