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

AIにGitHub ActionsやTerraformのバージョンアップを任せる

Last updated at Posted at 2025-12-23

最新バージョンに追従するため、各種ライブラリのバージョンアップ作業はとても重要ですが、どうしても面倒なところもあり後回しになりがちです。
やること自体はわりと定型作業で、イレギュラーな対応が発生することはあまりないため、このあたりの作業を開発用 AI ツールに任せると作業時間が省けて楽になります。
この記事では、GitHub Actions のライブラリや Terraform などのバージョンアップ作業を AI ツールに任せる際の依頼内容の事例を紹介します。
※ あくまで"事例"です、カスタマイズ推奨です
※ 今回は GitHub Copilot を使っていますが、他の AI ツール(Claude Code, Gemini)でも同様です

1. GitHub Actions ライブラリのバージョンアップ

以下内容でバージョンアップを依頼しています。

# 依頼: GitHub Actions ライブラリのバージョンアップ

## 概要

`.github/workflows` ディレクトリ配下にある GitHub Actions ワークフローで使用しているライブラリ(`uses:`で指定されているもの)のバージョンアップをお願いします。

## 更新ルール

以下の2つの条件を両方満たす場合にのみ、更新を実行してください。

メジャーバージョンの更新のみを対象とする
- 現在のバージョンよりも新しいメジャーバージョンがリリースされているものだけを更新してください
- マイナーバージョンやパッチバージョンのアップデートは対象外です

既存のバージョン表記を維持する
- 更新後のバージョン表記は、ファイルに元々記載されていた形式に合わせてください

マイナーバージョン以降も小まめに追従したい場合などは適宜修正いただければと思います。
上記内容を txt ファイル(今回の場合gha_versionup.txt)として保存しておき、必要な時に以下のようなコマンドでコピーしてプロンプトに貼り付けています。

$ cat gha_versionup.txt | pbcopy

2. Terraform と Provider のバージョンアップ

最初 AI ツールに渡した依頼内容(terraform_versionup.txt)は以下となります。

# 依頼: Terraformのバージョンアップ

## 概要

以下のバージョンアップをお願いします。
1. `.github/workflows` ディレクトリ配下にある GitHub Actions ワークフローで使用しているTerraform
2. `main.tf` か `provider.tf` で指定している Terraform の `required_version`
3. `main.tf` か `provider.tf` で指定している Terraform の `required_providers` 内の `google`


## 更新ルール

2に関しては他のtfファイルに記載されている可能性もあります 

1,2のTerraformバージョンはフィーチャーバージョン含め一致させてください

ただし、この依頼内容では意図せずバージョンがダウングレードされてしまいました。

  • Terraform: 1.10.5 にダウングレード
  • Google Provider: 6.14.0 にダウングレード

スクリーンショット 2025-12-23 16.54.50.png

また、そのことを指摘して再度バージョンアップをお願いすると、今度は最新版ではないバージョンに上がってしまいましたので、公式ドキュメントのリンクを渡し、そちらを必ず確認することや、Terraform 本体と Provider のバージョンを揃える条件などを追加で伝えます。

スクリーンショット 2025-12-23 16.57.45.png

今度は意図した通りにバージョンアップされました。

スクリーンショット 2025-12-23 16.58.45.png

一旦これでバージョンアップ作業自体は完了ですが、このままだと同じようなことが次回以降も発生するため、「最初にどう指示すればよかったのか」を聞きます。

スクリーンショット 2025-12-23 17.02.17.png

スクリーンショット 2025-12-23 18.25.47.png

返ってきた内容をそのまま反映して terraform_versionup.txt を修正し、以降はその修正後のテンプレを使っています。
修正後の terraform_versionup.txt が以下です。

# 依頼: Terraformのバージョンアップ

## 概要

以下を最新の安定版にバージョンアップしてください。
作業前に必ず公式リリースページで最新バージョンを確認してから更新してください。

1. `.github/workflows` ディレクトリ配下にある GitHub Actions ワークフローで使用しているTerraform
2. `main.tf` か `provider.tf` で指定している Terraform の `required_version`
3. `main.tf` か `provider.tf` で指定している Terraform の `required_providers` 内の `google`

## 更新ルール

- 2に関しては他のtfファイルに記載されている可能性もあります
- 1,2のTerraformバージョンはフィーチャーバージョン含め一致させてください
- 必ず以下の公式リリースページで最新版を確認してから更新してください
  - Terraform: https://github.com/hashicorp/terraform/releases
  - Google Provider: https://github.com/hashicorp/terraform-provider-google/releases

このように、AI に意図した通りの作業をしてもらえなかった時は、最後に「最初あなたにどうお願いしたら良かったのか?」という旨のことを聞くプチ振り返り会をしておくと後々楽になります。

(おまけ) PR 作成 (gh pr create コマンド生成)

ライブラリバージョンアップとは関係ありませんが、Pull Request の本文作成もお願いしています。
コード修正から(commit などの)Git 関連のコマンド実行といった一連の作業を任せておけば、AI ツール側で PR の目的・背景などを理解してくれているので、かなり意図した通りに PR 本文を作成してくれます。
具体的には、gh pr create のコマンドを作ってもらっています。
※ これは好みの話ですが、gh pr create コマンドの内容を確認しながら実行したいため、実行自体は自分の手で行い、AI にはコマンド文字列の生成だけをお願いしています

依頼文は以下となります。

gh pr create のコマンドを作ってください。
私の方でコマンド実行するので、あなたが実行する必要はありません。

コマンドは以下のようにして、TITLEとBODYを埋めてください。

```
gh pr create --title "${TITLE}" --body "${BODY}"
```

BODYは適切に改行を入れて見やすくしてください。


PR 本文(`--body`)は以下のようにしてください。

```
## 背景

## 概要

## 変更内容
```

「背景」「概要」「変更内容」に適切に文章を埋めてください。
バッククォートを使う際は、Shellコマンドと認識されないよう '\`' といったように適切にエスケープしてください。
また、以下の方針に沿ってください
- 背景と概要については敬語で記述してください
- Markdown崩れ防止のため、コードブロックは4つのバッククォートで囲んでください

PR 本文のフォーマットは組織の方針などに則って適宜修正ください(敬語の指定などは完全に個人の好みです)。

今後

だいぶ手作業の量は減りましたが、まだ人がやっている部分は残っています。
今後は、依頼テンプレを GitHub Actions のワークフロー内で使用し、AI にバージョンアップ作業から PR 作成までを行ってもらうジョブを定期実行することで、人は作成された PR をレビューしてマージするだけ、という世界にしていきたいです。

まとめ

以上、開発用 AI ツールに作業を代替してもらう例を紹介しました!めでたし!

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