17
16

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.

Atlassian StashでもGithubのhubライクなことがしたい

Posted at

はじめに

本記事は、Atlassian社のStashを使用されている方を対象としています。
※Stashが分からない方は・・、Github社でいうGithub Enterpriseと言えば、分かり易いでしょうか。

GithubにはGithub社が公開しているhubコマンドがあり
GUIの操作を、CUIで実現することができます。

hubコマンドを使用することにより
Githubの画面を都度開かなくても、コマンド一発でプルリクエストを作成したりすることができます。

非常に便利なhubコマンドですが、Atlassian Stashには対応していません。
hubコマンドに慣れると、GUIからの操作が非常に煩わしく感じるため
Atlassian Stashでも使える、hubコマンドのようなものを探したところ
Atlassian Stash Command Line Toolsなるものを発見しました。
※Rubyのgemとして配布されているため、Ruby環境が必須となります

以下、インストール手順や使い方をまとめます。

インストール手順

  1. Rubyをインストール(本記事では割愛)
  2. Atlassian Stash Command Line Toolsをインストール
gem install atlassian-stash
  1. 設定プロンプトを立ち上げて、初期設定を行う
stash configure
* Stash Username: [Stashのユーザ名を入力]
* Stash Password (optional): [Stashのパスワードを入力]
* Stash URL: [StashのルートURLを入力]
* Create a git alias 'git create-pull-request'?: [gitのaliasを設定する場合はyを入力]

使い方

Pull Requestを作成する場合は、先程gitのaliasを設定したので
stashコマンドを直接使用した場合と、gitのaliasから使用した場合を記述します。
個人的には、gitコマンドの補完が使用できる場合は、gitのaliasの方を使用した方がタイプ量が少なくてお勧めです。

  • Pull Requestを作成する
    • 現在のブランチからmasterへプルリクエストを作成
      • stash pull-request master
      • git create-pull-request master
    • topicBranchからmasterへプルリクエストを作成し、レビュアーに@michaelを指定
      • stash pull-request topicBranch master @michael
      • git create-pull-request topicBranch master @michael
  • 現在のリポジトリをブラウザで開く
    • stash browse
  • 指定のブランチ(topicBranch)をブラウザで開く
    • stash browse -b topicBranch
  • 現在のリポジトリのコミット一覧をブラウザで開く
    • stash browse commits
  • 現在のリポジトリのプルリクエスト一覧をブラウザで開く
    • stash browse pull-requests

トラブルシューティング

Pull Requestを作成するgitのaliasを実行した際にエラーが発生する

ホームディレクトリにある.gitconfigの内容を以下のように書き換えます(\を削除)

- create-pull-request = !sh -c 'stash pull-request \\$0'
+ create-pull-request = !sh -c 'stash pull-request $0'

ちょっと便利に

Pull Requestを作成するgitのaliasを実行した際、同時にブラウザの画面を開く

現状、CUIからタイトルや詳細が設定できないので、GUIから編集する必要があります。
この設定をしておくと、作成したPull Requestの画面がすぐに開いて、編集が出来るようなのでお勧めです。
ホームディレクトリにある.gitconfigの内容を以下のように書き換えます(末尾に-oを追加)

- create-pull-request = !sh -c 'stash pull-request $0'
+ create-pull-request = !sh -c 'stash pull-request $0 -o'

終わりに

今回ご紹介した、Atlassian Stash Command Line Toolsは発展途上のツールであり、hubコマンドに比べればまだまだ貧弱です。
しかし、今後も継続して機能追加が行われるようですので、積極的に使用してフィードバックしていきたいと思います。

以下、今後の追加予定の機能です。

  • Pull Requestのタイトルや詳細を設定可能に
    • 現状、CUIからは設定できないようです。そのため、CUIからPull Request作成後、GUIで再編集を行っています(直後にブラウザを開くように設定しているので、それほど苦ではありませんが、あると嬉しいですね。)
  • Pull Requestの詳細をコミットメッセージから生成可能に
    • 現状、詳細には何も設定されないようです
  • Pull Requestをローカルマシン上にcloneする
    • レビュー時に便利な機能ですね

個人的には、Pull Requestを作成せずに、作成する画面が開いてくれれば嬉しいのですが、そのようなコマンドは見当たりませんでした。
もしご存知の方がおられましたら、コメントをお願いします。

17
16
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
17
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?