1
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でPRの情報を取得する方法

Last updated at Posted at 2020-09-22

Github CLIを使って,PRの情報(URL,PRなど)を取得するには,どうすればいい?

実は,gh pr viewコマンドで,PRの情報を出力できます.下記の例は,masterブランチをheadとするPRの情報を出すためのコマンドを示しています.

gh pr view master > pr.txt

出力したPRの情報(pr.txt)は以下のようです.

title:	Publish 2020/09/23
state:	OPEN
author:	willsmile
labels:	Publish
assignees:	
reviewers:	
projects:	
milestone:	
number:	20
url:	https://github.com/willsmile/gatsby-willsmile-portal/pull/20
--

これらの情報から,必要なものを取り出すために,grepとawkコマンドを活用できます.
例えば,PRのurlを取り出したい場合,このような書き方で実現可能です.

gh pr view master | grep url | awk '{print $2}'

それらの情報を取得したら,何かできるのか?

一番想像しやすい実用方法は,コマンドで特定のPRをマージするということです.
以下のは,筆者が作ったMakefileです.それを使うと,masterブランチからdeploymentブランチへのPRを作って(make pr-create),作ったPRをマージする(make pr-merge)という処理を自動化することが可能になります.

NAME := portal-deployer
work_branch := master
publish_branch := deployment
pr_label := Publish
pr_title = Publish $(shell date +%Y/%m/%d)
pr_url = $(shell gh pr view master | grep url | awk '{print $$2}')

## Create pull request for publishing in Github
.PHONY: pr-create
pr-create:
  gh pr create --title "$(pr_title)" --body "Generated by $(NAME)" \
  --base $(publish_branch) --head $(work_branch) --label $(pr_label)

## Merge pull request for publishing in Github
.PHONY: pr-merge
pr-merge:
  gh pr merge $(pr_url) --delete-branch=false --merge

注意事項:pr_url = $(shell gh pr view master | grep url | awk '{print $$2}')での$$2はタイポではなくて,Makefileの変数として使えるために意図的に書いたものです.

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