GitHubのラベル、いつも手でセットアップしていたけど、GithHub APIでできそう♪
いろいろ調べたときの備忘録
スクリプト
スクリプトはこちら。冒頭のTODO_
系は適宜、設定ください〜
#!/bin/bash USER="TODO_YOUR_USER_NAME" TOKEN="TODO_YOUR_GITHUB_TOKEN" OWNER="TODO_OWNER_NAME" REPO="TODO_REPOSITORY_NAME" ############################# # VARIABLES ############################# URL="https://api.github.com/repos/${OWNER}/${REPO}/labels" OPT="-u ${USER}:${TOKEN}" ############################# # FUNCTION ############################# # url encode function urlencode { echo "$1" | nkf -WwMQ | sed 's/=$//g' | tr = % | tr -d '\n' } # get labels function getLabels() { echo "### getLabels" curl ${URL} ${OPT} } # delete labels function deleteLabel() { name=`urlencode "$1"` echo "### deleteLabel: name=${name}" curl -X DELETE "${URL}/${name}" $OPT } # add labels function addLabel() { name=`urlencode "$1"` color=`urlencode "$2"` data='{"name":"'$name'","color":"'$color'"}' echo "### addLabel: data=${data}" curl -X POST ${URL} ${OPT} \ -H "Accept: application/json" -H "Content-type: application/json" \ -d $data } # update labels function updateLabel() { old_name=`urlencode "$1"` new_name=`urlencode "$2"` new_color=`urlencode "$3"` data='{"name":"'$new_name'","color":"'$new_color'"}' echo "### updateLabel: oldName=${old_name}, data=${data}" curl -X PATCH "${URL}/${old_name}" ${OPT} \ -H "Accept: application/json" -H "Content-type: application/json" \ -d $data } ############################# # MAIN ############################# # GET ALL LABELS getLabels # ADD LABEL addLabel "request" "ff00ff" # UPADATE LABEL updateLabel "request" "要望" "0365D6" # DELETE LABEL deleteLabel "要望"
Tips: デフォルトのラベルを全部消す
# DELETE LABEL deleteLabel "bug" deleteLabel "duplicate" deleteLabel "enhancement" deleteLabel "good first issue" deleteLabel "help wanted" deleteLabel "invalid" deleteLabel "question" deleteLabel "wontfix"
Tips: お気に入りのラベル
# DELETE LABEL deleteLabel "good first issue" deleteLabel "help wanted" deleteLabel "question" # UPDATE LABEL updateLabel "bug" "bug" "d73a4a" updateLabel "enhancement" "feature" "0365D6" # ADD LABEL addLabel "refactor" "008672"
以上!
おまけ: トークンの取得方法
「Setting」をクリック
「Developer Settings」をクリック
「Personal access tokens」をクリック
「Generate new token」をクリック
「Note」に説明を適当に説明を書いて、「Generate token」をクリック
ラベルを操作するには「repo」権限すべてが必要っぽい。
トークンが表示されるのでコピーしておく!
以上!!