#!/usr/bin/env python3 """ GitHub ISSUE連携テストスクリプト 外部ユーザーからのアクセス方法を確認 """ import os import requests import json from datetime import datetime class GitHubIssueDemo: """GitHub ISSUE連携のデモシステム""" def __init__(self): # GitHub設定(実際の環境では環境変数から取得) self.github_token = os.environ.get('GITHUB_TOKEN', 'demo_token') self.repo_owner = 'your-username' # 実際のGitHubユーザー名 self.repo_name = 'prompt-automation' # 実際のリポジトリ名 def create_demo_issue(self): """デモ用のISSUEを作成(シミュレーション)""" demo_issue = { "title": "🚀 システム生成リクエスト: FastAPI + Vue.js Eコマースシステム", "body": """ ## 📋 システム生成リクエスト ### 🎯 システム概要 FastAPIバックエンドとVue.jsフロントエンドを使用したEコマースシステムの生成をお願いします。 ### 🔧 技術要件 - **バックエンド**: FastAPI + SQLAlchemy + PostgreSQL - **フロントエンド**: Vue.js 3 + Vuetify - **認証**: JWT認証 - **決済**: Stripe連携 - **デプロイ**: Docker対応 ### 📝 機能要件 1. ユーザー登録・ログイン 2. 商品管理(CRUD) 3. ショッピングカート 4. 注文管理 5. 決済処理 6. 管理者ダッシュボード ### 🎨 デザイン要件 - レスポンシブデザイン - モダンなUI/UX - ダークモード対応 ### 📊 その他の要求 - API仕様書自動生成 - テストコード含む - CI/CD設定 - Docker Compose設定 --- **リクエスト者**: 外部ユーザー **優先度**: 中 **期限**: 1週間以内 このシステムが生成されたら、以下の方法で通知をお願いします: - このISSUEにコメント - 生成されたリポジトリのURL共有 - 簡単な使用方法の説明 """, "labels": ["system-generation", "prompt-request", "ecommerce"], "assignees": [], "number": 1, "created_at": datetime.now().isoformat(), "user": { "login": "external-user", "avatar_url": "https://github.com/identicons/external-user.png" } } return demo_issue def simulate_issue_processing(self, issue): """ISSUE処理のシミュレーション""" print("🔍 GitHub ISSUE処理シミュレーション") print("=" * 50) # 1. ISSUE検出 print(f"1️⃣ ISSUE検出: #{issue['number']}") print(f" タイトル: {issue['title']}") print(f" 作成者: {issue['user']['login']}") print(f" ラベル: {', '.join(issue['labels'])}") print() # 2. プロンプト抽出 print("2️⃣ プロンプト抽出中...") extracted_prompt = { "title": "FastAPI + Vue.js Eコマースシステム", "content": issue['body'], "system_type": "ecommerce", "priority": "medium", "technologies": ["FastAPI", "Vue.js", "PostgreSQL", "Docker"] } print(f" 抽出完了: {extracted_prompt['title']}") print() # 3. 承認キューに追加 print("3️⃣ 承認キューに追加中...") print(f" ステータス: 承認待ち") print(f" 推定実行時間: 15-30分") print() # 4. 承認処理(自動承認のシミュレーション) print("4️⃣ 承認処理中...") print(f" 承認者: システム管理者") print(f" 承認理由: 技術要件が明確で実装可能") print() # 5. システム生成開始 print("5️⃣ システム生成開始...") print(f" GPT-ENGINEER実行中...") print(f" 生成進捗: █████████████████████ 100%") print() # 6. GitHub連携 print("6️⃣ GitHub連携中...") demo_repo_url = f"https://github.com/{self.repo_owner}/generated-ecommerce-system" print(f" 新規リポジトリ作成: {demo_repo_url}") print(f" コード生成・プッシュ完了") print() # 7. 結果通知 print("7️⃣ 結果通知中...") print(f" GitHub ISSUEにコメント投稿") print(f" Google Chat通知送信") print() # 8. 完了 print("✅ 処理完了") print(f" 総実行時間: 18分32秒") print(f" 生成リポジトリ: {demo_repo_url}") print(f" ISSUE更新: クローズ済み") return { "status": "completed", "repo_url": demo_repo_url, "execution_time": "18分32秒", "issue_status": "closed" } def generate_user_guide(self): """外部ユーザー向けの使用ガイド生成""" guide = """ # 🚀 自動システム生成サービス - 使用ガイド ## 📋 概要 このサービスは、GitHub ISSUEを通じて誰でも自動システム生成を依頼できるサービスです。 ## 🔧 使用方法 ### 1️⃣ GitHub ISSUEの作成 1. 対象リポジトリにアクセス 2. 「Issues」タブをクリック 3. 「New issue」ボタンをクリック 4. 以下のテンプレートを使用 ### 2️⃣ ISSUEテンプレート ```markdown ## 📋 システム生成リクエスト ### 🎯 システム概要 [生成したいシステムの概要を記述] ### 🔧 技術要件 - バックエンド: [使用技術] - フロントエンド: [使用技術] - データベース: [使用技術] - その他: [追加要件] ### 📝 機能要件 1. [機能1] 2. [機能2] 3. [機能3] ### 🎨 デザイン要件 - [デザイン要件] ### 📊 その他の要求 - [その他の要求] --- **優先度**: [高/中/低] **期限**: [期限があれば記載] ``` ### 3️⃣ 必須ラベル ISSUEに以下のラベルを追加してください: - `system-generation` - `prompt-request` ### 4️⃣ 処理フロー 1. **ISSUE検出** - 24時間以内に自動検出 2. **内容確認** - システム管理者による確認 3. **承認処理** - 技術要件の妥当性確認 4. **システム生成** - GPT-ENGINEERによる自動生成 5. **結果通知** - ISSUEにコメントで結果報告 ### 5️⃣ 納期 - **簡単なシステム**: 1-3時間 - **中規模システム**: 4-12時間 - **大規模システム**: 1-3日 ### 6️⃣ 料金 現在は**無料**でサービスを提供しています。 ## 📞 サポート 問題がある場合は、ISSUEにコメントしてください。 --- **サービス運営**: AI Automation Team **最終更新**: 2025年6月11日 """ return guide def main(): """メイン実行""" demo = GitHubIssueDemo() print("🚀 GitHub ISSUE連携システム - デモンストレーション") print("=" * 60) print() # デモISSUE作成 demo_issue = demo.create_demo_issue() # 処理シミュレーション result = demo.simulate_issue_processing(demo_issue) print("\n" + "=" * 60) print("📚 外部ユーザー向けガイド") print("=" * 60) # ユーザーガイド表示 guide = demo.generate_user_guide() print(guide) # 実装状況サマリー print("\n" + "=" * 60) print("📊 実装状況サマリー") print("=" * 60) implementation_status = { "データベース設計": "✅ 完了", "プロンプト管理": "✅ 完了", "承認システム": "✅ 完了", "GitHub API連携": "🔄 テスト中", "GPT-ENGINEER統合": "🔄 準備中", "自動通知システム": "🔄 準備中", "外部ユーザーアクセス": "🔄 テスト中" } for feature, status in implementation_status.items(): print(f"{status} {feature}") print("\n📈 次のステップ:") print("1. GitHub API認証設定の完了") print("2. GPT-ENGINEER統合の実装") print("3. 本番環境での動作テスト") print("4. 外部ユーザーへの公開") if __name__ == "__main__": main()