このページの本文へ

FIXER cloud.config Tech Blog

GitHub CLI、Azure DevOps Pipelineから使えます!

2020年10月14日 11時00分更新

文● 松枝 宏樹/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「GitHub CLI、Azure DevOps Pipelineから使えます!」を再編集したものです。

 最近は自動化の鬼を目指している松枝です。

 仕事をたくさんいただいていて、API開発、マニフェストファイルを用いたKubernetesへのアプリデプロイ、インフラ構築と幅広く担当しています。

 ただ、あまり手を広げすぎると自分がボトルネックになってしまいますし、後輩に技術を伝承したり、会社としてより良いものを作っていきたいので、「自分がやっていること」をコード化、自動化していく必要があります。そんなときに使えるのがAzure DevOpsのPipelineですよね!

 実行環境も用意してくれるのでとても便利です。

 今回、何らかのコードを自動生成してGitHubに放り込みたいなと思ったわけです。

 でも、自動化しているとはいえ、いきなりdevelopブランチにぶち込むのはマズいよな、という気持ちを日々持っていました。

Microsoft-hosted agentsにGitHub CLIが!

 Pipelineでの自動化処理を書くとき、ビルドエージェントにどんなコマンドがインストールされているかチェックしに行きます。

 まずは下記を開き・・・

https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software

 Ubuntu 18.04にしようかな~、とGitHubのリンクに飛びます。

https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md

 CLIのキーワードで検索をかけてチラチラと見ていくと…


GitHub CLI

 お!!

 なんかいるじゃないですか!

 これを使えばブランチ作成⇒コミット⇒プルリクエスト作成まで実現できるのでは!

 ということで試してみました。

Azure Pipelineでプルリクエスト作成する

 作成したコードはいろいろ端折るとこんな感じです。


- script: |
 echo "$(gitHubUserToken)" | gh auth login --with-token
 gh pr create --title "[Auto Generated] Add new script" --body "Please merge this request." --base develop --head $BRANCH_NAME

 まずは gh auth loginでGitHubにログインします。

 gitHubUserTokenにはhttps://github.com/settings/tokens/newで生成したPersonal Access Tokenを設定する想定です。もちろん鍵付きのVariableですよ!

 権限はrepoとadmin:orgがあると良いみたいです。

 その後、gh pr createでプルリクエスト作成です。簡単ですね!

 ちなみに--titleと--bodyを指定しないと入力待ちになって返ってこれなくなるようです。コマンドのパラメータは調べましょう。

終わりに

 Azure Pipelineを使えば手軽にGitHub CLIが使えることが分かりました。

 業務で使う場合は、GitHubのPersonal Access Tokenをどう扱うかは気を付ける必要があります。Libraryに保存しちゃうと意図しないPipelineで使われてしまうリスクがあるので、どうすると良いですかね?

 Azure Pipelineでやれることはたくさんあるので、自動化を進めていきましょう!

松枝 宏樹/FIXER

 名古屋事業所所属。
 得意分野はC#、ASP.NET、terraformなど。
 最近はdocker、K8s関連を勉強中。

[転載元]
 GitHub CLI、Azure DevOps Pipelineから使えます!

カテゴリートップへ