Asyncは、AIコーディング、タスク管理、コードレビューの3つの要素を1つのワークフローに深く統合したオープンソースの開発者ツールです。 このツールは、GitHubのIssuesからPull Requestへのマージプロセス全体を自動化し、開発効率を向上させることで、成熟したコードベースの開発課題を解決することを目的としている。 まずAIを使ってコーディングタスクを分析し、要件を明確にするための質問を行い、次にクラウド上の隔離された環境でコード変更を実行し、大規模なタスクをレビューしやすい複数のサブタスクに分解する。 このようにして、Asyncは開発者がツールを切り替える頻度を減らし、コーディング前のプランニングを実施し、タスク追跡とコードレビューのプロセスを効率化する。
機能一覧
- 自動ミッション研究コーディングを始める前に、Asyncは自動的にコードベースを分析し、タスクの要件について明確な質問をして、正しい方向に向かっていることを確認します。
- クラウドでの分離実行コードの修正と実行は、開発者のローカル開発環境に影響を与えることなく、クラウド上の隔離された環境で行われる。
- 積み重ねられた分散のレビュー大規模なタスクを複数の独立したサブタスクとコミットに分解し、積み重ねられた差分を生成することで、コードレビューのプロセスをより明確かつ効率的にする。
- エンド・ツー・エンドのワークフローAsyncは、GitHubの課題作成からコードの最終的なマージまで、ユーザーがアプリを離れることなく開発プロセス全体を処理します。
- タスク追跡の簡素化このツールは、GitHubリポジトリから保留中の課題をタスクとして自動的にインポートすることができます。
- 組み込みのコードレビューコード投稿は、Asyncアプリ内から直接コメントや反復が可能で、レビュー後に直接マージすることができます。
ヘルプの使用
Asyncはフロントエンドとバックエンドが統合された複雑なアプリケーションであるため、そのインストールと使用には一連の環境設定が必要です。次のセクションでは、ローカル環境で Async をデプロイして実行する方法を詳しく説明します。
環境準備
始める前に、システムに Python Environment Manager ツールがインストールされていることを確認してください。プロジェクトではuv
高速な Python パッケージインストーラとパーサです。
ステップ1:コードを取得し、仮想環境をセットアップする
- まず、プロジェクトのコード・リポジトリをローカル・マシンにクローンする:
git clone https://github.com/bkdevs/async-server.git cd async-server
- 利用する
uv
新しい仮想環境を作成します。これにより、ホーム・ディレクトリに.venv
フォルダーでプロジェクトの依存関係を分離する。uv venv .venv
- 作成した仮想環境をアクティベートします。macOSまたはLinuxで実行する:
source .venv/bin/activate ``` 激活后,你的命令行提示符前端会显示`(.venv)`字样。
ステップ 2: プロジェクトの依存関係をインストールする
- 仮想環境をアクティブにしたら
uv sync
コマンドでインストールする。pyproject.toml
ファイルに定義されているすべての依存関係。uv sync
- 次に、コード整形と静的チェックのためのコミット前フックをインストールする。
pre-commit install
これにより、あなたがコードを提出する際、プロジェクトが設定した仕様に自動的に従うようになる。
ステップ 3: 設定ファイル
- 環境変数ファイル::
プロジェクトのルート・ディレクトリに.env
ファイルに保存される。このファイルは、機密性の高いAPIキーや設定情報を保存するために使用される。プロジェクトの.env.local
ファイルで、どの変数を設定する必要があるかを確認する。cp .env.local .env
次に
.env
ファイルに、データベースのアドレス、GitHubキー、Anthropic、OpenAI、Google、その他のAIモデルのAPIキーなど、独自の設定情報を記入する。 - Firebase設定ファイル::
このプロジェクトでは、データベースとして Firebase Firestore を使用します。サービスアカウントのJSONキーファイルをFirebaseプロジェクトコンソールからダウンロードし、名前をasync-firebase.json
そしてプロジェクトのルート・ディレクトリに置く。 - Google Cloud認定資格::
AsyncはGoogle Cloud Runを利用してクラウドタスクを実行するので、Google Cloudのローカル認証を行う必要がある。以下のコマンドを実行すると、ブラウザが開き、ログイン認証のガイドが表示されます:gcloud auth application-default login
ステップ4:ローカルで実行する
- バックエンド・サービスの開始::
上記のすべての設定が完了したら、バックエンド FastAPI サービスを開始できます。次のコマンドで開始すると、サービスは8000
ポートと--reload
パラメーターは、コード変更後にサービスを自動的に再起動させる。uvicorn src.server:app --reload --port 8000
- コードのチェックとフォーマット::
コードの書式設定やスタイルチェックを手動で行いたい場合は、以下のコマンドを実行することができる:# 格式化代码 uv run ruff format . # 检查代码并自动修复问题 uv run ruff check . --fix
ステップ5:テストの実行
すべてが正しく機能することを確認するために、プロジェクトに付属しているユニットテストを実行することができる:
python -m pytest
ワークフロー入門
Asyncをローカルで正常に実行すると、以下のように動作する:
- 権限の委譲とタスクのインポートGitHubアプリ経由でAsyncにコードリポジトリへのアクセスを許可すると、リポジトリ内の未解決の課題をタスクとして自動的にインポートします。
- 研究段階新しいタスクが作成されると、Google Cloud Runは「リサーチ」タスクを開始し、コードベースのクローンを作成し、コードを分析し、あいまいな要件に関する質問を生成します。
- 実施段階質問に対する確認や回答が終わると、別のクラウドベースのタスクがコード変更の実行を開始します。クロードコードモデルを使用して新しい機能ブランチを作成し、タスクを複数のサブタスクに分割してコミットとして1つずつ送信し、最後にプルリクエスト(PR)を自動的に作成します。
- レビュー段階このPRはAsyncのインターフェイスでレビューすることができ、stacked diffsビューで各サブタスクの変更を個別に確認することができる。直接コメントすることができ、変更が必要な場合はシステムが自動的に新しいサブタスクを作成します。
アプリケーションシナリオ
- 複雑なコードベースの機能開発を加速
大規模で複雑なコードベースを持つチームにとって、新機能の導入や深い脆弱性の修正には、多くの場合、事前の調査とコンテキストの理解が必要です。Asyncは、AI調査機能によってコードベースを自動的に分析し、タスク要件を明確にすることで、熟練開発者が修正箇所を素早く特定し、手作業で物事を把握する時間を短縮することができます。 - コード・レビュー・プロセスの最適化
Asyncは、大きなタスクを複数の論理的なサブタスク(スタックされた差分)に分解することで、レビューの効率と質を向上させます。 - 開発中のコンテキストの切り替えを減らす
開発者は、IDE、プロジェクト管理ツール(JiraやLinearなど)、コードホスティングプラットフォーム(GitHub)、コミュニケーションツールなどを行ったり来たりする必要があることが多い。asyncは、これらのプロセスを統合プラットフォームに統合することで、タスクの割り当てからコーディングの実行、コードレビューまですべてを一箇所で行うことができ、ツールの切り替えによる精神的負担を劇的に軽減する。
品質保証
- Asyncツールが解決する主な問題は何ですか?
Asyncは、成熟した複雑なコードベースで開発する際に遭遇する効率性の問題を解決することに重点を置いています。AIコーディング、タスク管理、コードレビューを統合することで、課題作成からコードマージまでの全プロセスを自動化し、開発者のコンテキストスイッチングを減らし、先行計画を実施し、コードレビュープロセスを合理化するように設計されています。 - Asyncはクラウド上でどのようにコードを実行するのか?
AsyncはGoogle Cloud Runを使用して、スタンドアロンでコンテナ化されたタスクを実行する。コードの変更を実行する必要がある場合、クラウドジョブを開始し、隔離された環境にコードリポジトリをクローンし、すべての依存関係をインストールし、Claude CodeのようなAIモデルを使用してコードを書いてコミットし、完了すると自動的にプルリクエストを開始する。すべてのプロセスは、開発者のローカル環境に影響を与えない。 - プロジェクトはセルフホスティングをサポートしていますか?
オープンソースプロジェクトであるAsyncは、ローカルおよびクラウドでのデプロイに関する詳細なガイドを提供している。ユーザーはGoogle Cloud PlatformアカウントでCloud RunとFirebaseを設定し、関連するAPIキーを提供することで、サービス全体を自分でデプロイして実行することができる。 - このツールは初心者の開発者や新しいプロジェクトに適していますか?
ドキュメントによると、Asyncは「コードベースを深く知る経験豊富な開発者のために作られた」ものだという。複雑な歴史や構造を持つ大規模なプロジェクトに取り組む際に、最も価値を発揮する。新規プロジェクトや若手開発者にとっては、複雑な自動プロセスは必要ないかもしれない。