kenken999
🚀 Sync core system files from workspace
633f9ef
#!/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()