🎉

GitHub PR Issue Greeterで効率的なワークフローを実現:自動応答ボットGithub appの導入ガイド

2024/09/08に公開

はじめに

現代のソフトウェア開発において、GitHubリポジトリの管理は欠かせません。しかし、新しいプルリクエスト(PR)やIssueに迅速に対応することは、開発者にとって大きな負担となることがあります。そこで注目されているのが「GitHub PR Issue Greeter」です。このボットを使えば、PRやIssueへの初期対応を自動化し、開発チームの効率を大幅に向上させることができます。

デモ動画

GitHub PR Issue Greeterとは?

GitHub PR Issue Greeterは、GitHubリポジトリに新しく作成されたPRやIssueに自動的に応答するPythonベースのボットです。このツールは、github-app-sandboxプロジェクトの一部として開発されており、GitHub Appの開発とテストを安全に行うための環境を提供しています。

主な特徴

  1. 自動応答機能

    • 新しいPRが作成されると、自動的に歓迎のコメントを投稿します。
    • 新しいIssueが開かれた際も、即座に対応メッセージを送信します。
  2. カスタマイズ可能

    • 応答メッセージは簡単にカスタマイズでき、プロジェクトの雰囲気に合わせて調整できます。
  3. ログ機能

    • 詳細なログ機能により、ボットの動作を追跡し、問題が発生した場合にすぐに対処できます。
  4. セキュアな認証

    • GitHubのApp認証を使用しており、セキュリティ面でも安心です。

セットアップ手順

GitHub PR Issue Greeterを導入するのは、思ったより簡単です。以下の手順に従って設定を行いましょう。

  1. リポジトリのクローン

    git clone https://github.com/Sunwood-ai-labs/github-app-sandbox.git
    cd github-app-sandbox/sandbox/s01_github_pr_issue_greeter
    
  2. 依存関係のインストール

    pip install flask PyGithub loguru python-dotenv
    
  3. 環境設定

    • .env.exampleファイルを.envにコピーし、必要な情報を入力します。
    cp .env.example .env
    

    .envファイルの内容は以下のようになります:

    GITHUB_APP_ID=972367
    GITHUB_PRIVATE_KEY_PATH=gh-pr-issue-greeter.2024-08-17.private-key.pem
    

    これらの値の入手方法:

    a. GITHUB_APP_ID:

    • GitHubのDeveloper settingsページにアクセスします。
    • 作成したGitHub Appを選択します。
    • 「About」セクションに「App ID」が表示されています。この数字をコピーして使用します。

    b. GITHUB_PRIVATE_KEY_PATH:

    • 同じくGitHub Appの設定ページで、「Private keys」セクションに移動します。
    • 「Generate a private key」ボタンをクリックします。
    • .pemファイルがダウンロードされるので、このファイルをプロジェクトのルートディレクトリに配置します。
    • .envファイルには、このpemファイルの名前を記入します。
  4. GitHubアプリの作成

    • GitHubのDeveloper settingsで「New GitHub App」をクリックします。
    • アプリ名、説明、Webhook URL(開発時はsmee.ioなどのプロキシサービスのURLを使用)を入力します。
    • 必要な権限(PRとIssueへの読み書き権限など)を設定します。
    • アプリを作成したら、上記の手順でApp IDと秘密鍵を取得します。
  5. アプリの実行

    python app.py
    

使用方法

セットアップが完了したら、以下の手順でボットを稼働させます:

  1. smeeクライアントを起動してWebhookをローカルサーバーに転送:

    smee -u https://smee.io/your_unique_url --port 5000
    
  2. Flaskアプリケーションを起動:

    python app.py
    
  3. GitHubリポジトリで新しいPRやIssueを作成し、ボットの動作を確認します。

カスタマイズのヒント

  1. 応答メッセージの変更
    app.pyファイル内のcomment_text変数を編集することで、応答メッセージをカスタマイズできます。

  2. イベントの追加
    現在はPRとIssueの作成時のみに対応していますが、他のGitHubイベントにも簡単に拡張できます。

  3. ログ設定の調整
    logger.add()の呼び出しを変更することで、ログの出力先や形式をカスタマイズできます。

まとめ

GitHub PR Issue Greeterは、開発チームのワークフローを大幅に改善する強力なツールです。自動応答機能により、コントリビューターに素早くフィードバックを提供し、プロジェクトの活性化につながります。また、カスタマイズ性の高さと簡単なセットアップ手順により、さまざまなプロジェクトに柔軟に対応できます。

ぜひGitHub PR Issue Greeterを導入して、より効率的で活気のあるGitHubリポジトリ管理を実現してください。オープンソースコミュニティとの協力も歓迎しています。新機能の提案やバグ報告は、プロジェクトのGitHubページでお待ちしています。

リポジトリ

https://github.com/Sunwood-ai-labs/github-app-sandbox

<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Discussion