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

OpenHands GitHub Action完全ガイド - 自動化でさらなる生産性向上を

Posted at

概要

OpenHands GitHub Actionは、GitHubリポジトリでのissueやプルリクエストに対してAIエージェントが自動的に作業を実行する強力な自動化ツールです。これまでCLIでの直接操作について解説してきましたが、GitHub Actionを導入することで、チーム開発での生産性を大幅に向上させることができます。

前回の記事のおさらい

本記事は以下の記事の続編です:

これらの記事では個人での開発効率化に焦点を当てましたが、今回はチーム開発での自動化について解説します。

OpenHands GitHub Actionとは

OpenHands GitHub Actionは、GitHubのワークフロー機能を活用してAIエージェントを自動実行するサービスです。issueやプルリクエストに特定のラベルを付けたり、特定のコメントを投稿することで、AIエージェントが自動的にコードの修正や機能実装を行います。

主要な特徴

  • 自動トリガー: ラベルやコメントで簡単に起動
  • プルリクエスト生成: 修正内容を自動でプルリクエストとして提出
  • 反復的改善: フィードバックに基づいた継続的な改善
  • カスタマイズ可能: チーム固有の設定や指示を追加可能

セットアップ方法

1. リポジトリへのインストール

OpenHands GitHub Actionを新しいリポジトリにインストールするには、以下のワークフローファイルを作成します。

.github/workflows/openhands-resolver.yml を作成:

name: Resolve Issue with OpenHands

on:
  issues:
    types: [labeled]
  pull_request:
    types: [labeled]
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  pull_request_review:
    types: [submitted]

permissions:
  contents: write
  pull-requests: write
  issues: write

jobs:
  call-openhands-resolver:
    uses: All-Hands-AI/OpenHands/.github/workflows/openhands-resolver.yml@main
    with:
      macro: ${{ vars.OPENHANDS_MACRO || '@openhands-agent' }}
      max_iterations: ${{ fromJson(vars.OPENHANDS_MAX_ITER || 50) }}
      base_container_image: ${{ vars.OPENHANDS_BASE_CONTAINER_IMAGE || '' }}
      LLM_MODEL: ${{ vars.LLM_MODEL || 'anthropic/claude-sonnet-4-20250514' }}
      target_branch: ${{ vars.TARGET_BRANCH || 'main' }}
      runner: ${{ vars.TARGET_RUNNER }}
    secrets:
      PAT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      PAT_USERNAME: ${{ secrets.PAT_USERNAME }}
      LLM_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

2. 必要な設定

Repository Secrets

  • ANTHROPIC_API_KEY: Anthropic Claude APIキー
  • PAT_USERNAME: GitHubユーザー名

GitHub設定

リポジトリの Settings > Actions > General で以下を設定:

  • Allow GitHub Actions to create and approve pull requests: ✅ ONにする

Repository Variables(オプション)

これらの設定は任意です。指定しない場合はデフォルト値が使用されます:

  • LLM_MODEL: 使用するLLMモデル(デフォルト: anthropic/claude-sonnet-4-20250514
  • OPENHANDS_MACRO: カスタムマクロ(デフォルト: @openhands-agent
  • OPENHANDS_MAX_ITER: エージェントの最大反復回数(デフォルト: 50)
  • TARGET_BRANCH: プルリクエストのターゲットブランチ(デフォルト: main

基本的な使い方

Issue解決の自動化

方法1: ラベルを使用

  1. GitHubでissueを作成
  2. fix-meラベルを追加
  3. OpenHandsエージェントが自動的に問題を分析し、修正を試行
  4. 修正内容がプルリクエストとして提出される

方法2: コメントを使用

  1. issueまたはプルリクエストにコメントを投稿
  2. コメントを@openhands-agentで開始(デフォルトマクロ)
  3. エージェントが該当のコメント内容に基づいて作業を実行

使用例

バグ修正の依頼

Issue タイトル: ログイン機能でメールアドレスの検証が正しく動作しない

Issue 本文:
ユーザーがログインする際、無効なメールアドレス形式でもログインできてしまう問題があります。
バリデーション機能を追加して、正しいメールアドレス形式のみを受け付けるようにしてください。

ファイル: src/auth/login.js

ラベル fix-me を追加すると、エージェントが:

  1. コードを分析
  2. バリデーション機能を実装
  3. テストケースを追加
  4. プルリクエストを作成

機能追加の依頼

@openhands-agent
ユーザーダッシュボードに「最近の活動」セクションを追加してください。
- 過去7日間のユーザーアクティビティを表示
- 日付順でソート
- 最大10件まで表示
- レスポンシブデザインに対応

高度な設定

カスタム指示の追加

リポジトリルートに .openhands/instructions.md ファイルを作成することで、エージェントにカスタム指示を提供できます:

# OpenHands カスタム指示

## プロジェクト概要
このプロジェクトは React + TypeScript で構築された Web アプリケーションです。

## コーディング規約
- ESLint と Prettier の設定に従ってください
- コンポーネントは関数型で記述してください
- テストファイルは `__tests__` ディレクトリに配置してください

## 禁止事項
- 本番環境の設定ファイルは変更しないでください
- データベースマイグレーションは直接実行しないでください

## 推奨事項
- 新機能追加時は必ずテストケースを含めてください
- コメントは日本語で記述してください

環境変数の詳細設定

変数名 説明
LLM_MODEL Variable 使用するLLMモデル anthropic/claude-sonnet-4-20250514
OPENHANDS_MAX_ITER Variable エージェントの最大反復回数 50
OPENHANDS_MACRO Variable カスタムマクロ @openhands-agent
OPENHANDS_BASE_CONTAINER_IMAGE Variable カスタムサンドボックスイメージ custom_image
TARGET_BRANCH Variable プルリクエストのターゲットブランチ main
TARGET_RUNNER Variable ワークフローを実行するランナー ubuntu-latest

まとめ

OpenHands GitHub Actionは、これまでのCLI使用で培った生産性をチーム全体に拡張する強力なツールです。適切にセットアップすることで、issueの自動解決、コードレビューの効率化、継続的な品質改善を実現できます。

次のステップ

  1. 導入開始: 小規模なリポジトリでテスト運用
  2. 設定最適化: チーム固有の要件に合わせた設定調整
  3. ワークフロー統合: 既存の開発プロセスとの統合
  4. チーム教育: メンバーへの使用方法共有

OpenHands CLIでの個人生産性向上から始まり、GitHub Actionでのチーム生産性向上まで、AI支援開発の全体像を活用して、より効率的で質の高い開発を実現してください。

関連リンク

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