0
1

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 5 years have passed since last update.

issue番号を入れるだけでissueタイトルをつけてブランチを作成する

Last updated at Posted at 2019-03-02

GitHubでissueを作成したのち,ローカルでissueタイトルを含めてブランチを作成するときにissueタイトルをコピペするのが面倒だったので,スクリプトを作成しました。

スクリプト

mkbranch
#!/bin/sh
USER_AND_REPO=`git remote -v | tr ' ' '\n' | tr ':' '\n' | sed -n 2P | sed 's/.git//'`
ISSUE_NUM=$1
# If the repository is secret, get 'Full control of private repositories' token from https://github.com/settings/tokens
GIT_HUB_API_TOKEN=''
GIT_HUB_ISSUE_URL=https://api.github.com/repos/${USER_AND_REPO}/issues/${ISSUE_NUM}
ISSUE_TITLE=`curl -su :${GIT_HUB_API_TOKEN} ${GIT_HUB_ISSUE_URL} | grep title | tr ':' '\n' | sed -n 2P | sed -e 's/ \|"\|,//g'`
if [ -z ${ISSUE_TITLE} ]; then
  echo "Can't get issue title."
  exit 1
fi
BRANCH_NAME=#${ISSUE_NUM}-${ISSUE_TITLE}

git checkout master
git pull origin master
git checkout -b ${BRANCH_NAME}
git push origin ${BRANCH_NAME}

Gist
GitHubのAPIを利用してissueのタイトルを取得しています。
issue番号とタイトルを元にブランチ名を決定し

  1. masterにcheckout
  2. リモートmasterをpull
  3. ブランチの作成&checkout
  4. ブランチのpush
    を行います。
    BRANCH_NAMEの部分をいじることでブランチ名のフォーマットを変更できます。

使い方

# プロジェクトディレクトリ下で
curl -sO https://gist.githubusercontent.com/akriaueno/1f71077005d3f3d253c18cc519a4367a/raw/debf08ffcf9eae944ca5a50de3ba790da19f44b4/mkbranch && chmod +x mkbranch
./mkbranch <issue番号>

gitコマンドを使用しているので,プロジェクトディレクトリ下で実行してください。
シークレットレポジトリの場合は https://github.com/settings/tokens からFull control of private repositoriesなトークンを取得してGIT_HUB_API_TOKENに入れてください。
トークンを入力したスクリプトをGitHubで公開してしまわないようご注意ください!

シェルスクリプト初心者なので変なところがあったらご指摘ください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?