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?

【個人開発】Gemini API × GitHub ActionsでPRのQAレビューを自動化する「QA-Sensei」を作ってみた

0
Posted at

はじめまして、なお(@nao_dev)と申します。
普段は本業でC言語などを扱っているエンジニアですが、この度人生で初めての個人開発プロダクトを完成させ、公開しました!

今回は、開発したGitHub Actions「QA-Sensei」の紹介と、初めての個人開発でAIを活用してどう作り上げたかについて書いていきます。


💡 なぜ作ろうと思ったか(開発の背景)

コードレビューの際、「機能が動くか」だけでなく「境界値や異常系の考慮が漏れていないか」といっ*QA(品質保証)の観点での確認は非常に重要ですが、手動で行うと抜け漏れが発生しがちです。

そこで、プルリクエスト(PR)の差分を送信するだけで、AIが自動でQA観点のレビューを投稿してくれるCI/CDツールがあれば、チームの品質保証プロセスを効率化できると考え開発をスタートしました。


🛠️ プロダクト概要:「QA-Sensei」とは?

「QA-Sensei」は、GitHub Actions上で動作し、Gemini APIを活用してPRの差分に対して自動でQAレビューを行うツールです。

主な機能・特徴

  1. 自動QAレビュー: PRの変更差分を解析し、境界値分析や異常系チェックの観点からアドバイスを投稿
  2. ログの可視化 & ファイル自動保存: レビュー結果のトラッキングがしやすい実用的な設計
  3. 軽量・高速: Node.js / TypeScript で構築

⚠️ ご注意(ステータスについて)
本プロダクトは現在 PoC(概念実証)段階 のプロトタイプです。
個人開発かつ初公開ということもあり、実用における境界値テストや様々なリポジトリでの検証はまだ不十分な部分があります。
フィードバックをいただきながらアップデートしていきたいと考えておりますので、あらかじめご了承ください!


💻 技術スタック

本業とは異なるモダンな開発環境に挑戦しました。

  1. 言語・環境: Node.js, TypeScript (NodeNext設定で型安全な基盤を構築)
  2. CI/CD・統合: GitHub Actions
  3. AI: Gemini API

🤖 初めての個人開発 × AI活用の裏側

今回の開発にあたり、AI(Gemini)を開発パートナーとしてフル活用しました。

本業でのC言語等の経験はあったものの、Node.jsやTypeScriptによるGitHub Actions開発は初めての領域でした。そこで、以下のようにAIを活用することで開発を加速させました。

  1. アーキテクチャの相談: API連携や環境構築のステップ設計
  2. コードの補完とエラー解消: 型定義やNodeNext特有の構成についての壁打ち
  3. ドキュメント・仕様整理: 機能要件の洗い出し

「やりたい構想」をAIと一緒に具現化していくことで、初めての個人開発でも途中で折れることなく、構想から公開まで走り切ることができました。


🚀 使い方(導入手順)

1. 事前準備

  1. Google AI Studio で Gemini API Key を取得します。
  2. 本Actionを導入したいGitHubリポジトリの Settings > Secrets and variables > Actions に進みます。
  3. New repository secret をクリックし、以下のSecretを登録します:
    • Name: GEMINI_API_KEY
    • Secret: 取得したGemini API Key

2. ワークフローファイルの作成

対象リポジトリの .github/workflows/qa-sensei.yml に以下の設定を追加します。

name: QA Sensei Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  qa-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # PRにコメントを書き込むために必要です
    
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Run QA-Sensei
        uses: nao-dev-glitch/qa-sensei@main
        with:
          gemini_api_key: ${{ secrets.GEMINI_API_KEY }}

3. パラメータ(Inputs)

・gemini_api_key(必須):Gemini APIを実行するためのAPIキー


4. 関連リンク

・GitHubリポジトリ:https://github.com/nao-dev-glitch/qa-sensei


🔮 今後の展望(ロードマップ)

現在はPoCとして最小限の機能で公開していますが、今後は以下のような改善・拡張を予定しています。

  1. 動的検証の導入: 現在は tsc による静的解析(型チェック)までなので、vitest 等を組み込んだ「テストパスまで完結させるループ」への拡張。
  2. 他言語への移植: 自身がメインで扱う C/Java/C# 環境への自律修復エンジンの応用。

「こんな機能があったら嬉しい」「ここを改善すると使いやすそう」といったご意見がありましたら、ぜひコメントやIssueで教えていただけると助かります!


🌟 おわりに

初めての個人開発・公開ということでドキドキしていますが、自分が「欲しい」と思ったものを形にして世に出す楽しさを実感しています。

まだまだ改善できるポイントもあるかと思いますので、ぜひ使ってみてフィードバックやアドバイス、Qiitaでのコメントなどをいただけると大変嬉しいです!

初開発の第一歩を踏み出せましたので、今後もプロダクトの改善や新しいツール開発に挑戦していきます。

最後まで読んでいただきありがとうございました!


🤖 本記事の執筆について

本プロダクトの開発はもちろん、本記事の構成作成や文章のブラッシュアップにおいてもAI(生成AI)を執筆パートナーとして活用しています。

文章の整理や見出しの構成をAIと壁打ちしながら進めることで、初めての個人開発・記事投稿でもスムーズにアウトプットまで繋げることができました。

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?