Skip to content

Commit 1c90d47

Browse files
mizchiclaude
andcommitted
fix: add async to handleServeRoute, restructure usage guides
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7415a20 commit 1c90d47

3 files changed

Lines changed: 165 additions & 269 deletions

File tree

docs/usage-guide-ja.md

Lines changed: 83 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,60 @@
11
# bit-relay 利用ガイド
22

3-
bit-relay を使ったリポジトリ共有・issue 管理・コラボレーションのステップバイステップガイドです。Git の基本知識を前提としています。
3+
bit-relay を使ったリポジトリ共有・issue 管理・コラボレーションのガイドです。Git の基本知識を前提とします。
4+
5+
## インストール
6+
7+
```bash
8+
# シェルスクリプト(Mac/Linux)
9+
curl -fsSL https://raw.githubusercontent.com/mizchi/bit-vcs/main/install.sh | bash
10+
11+
# MoonBit パッケージマネージャ
12+
moon install mizchi/bit/cmd/bit
13+
```
14+
15+
```bash
16+
bit --version
17+
```
18+
19+
## クイックスタート
20+
21+
### リポジトリを作って issue を共有する
22+
23+
```bash
24+
# リポジトリ作成
25+
mkdir my-project && cd my-project
26+
bit init
27+
echo "# My Project" > README.md
28+
bit add . && bit commit -m "initial commit"
29+
30+
# issue トラッキングを初期化
31+
bit issue init
32+
33+
# issue を作成
34+
bit issue create -t "ログインページでクラッシュする" -b "特殊文字入力時に発生"
35+
36+
# relay に issue を push
37+
bit relay sync push relay+https://bit-relay.mizchi.workers.dev
38+
```
39+
40+
### リポジトリを relay 経由で公開する
41+
42+
```bash
43+
bit relay serve relay+https://bit-relay.mizchi.workers.dev
44+
# => Clone URL: relay+https://bit-relay.mizchi.workers.dev/AbCdEfGh
45+
```
46+
47+
### 相手が clone して issue を取得する
48+
49+
```bash
50+
bit clone relay+https://bit-relay.mizchi.workers.dev/AbCdEfGh
51+
cd AbCdEfGh
52+
bit issue init
53+
bit relay sync fetch relay+https://bit-relay.mizchi.workers.dev
54+
bit issue list
55+
```
56+
57+
これだけで、GitHub なしにリポジトリと issue を共有できる。
458

559
## Why bit
660

@@ -26,25 +80,23 @@ bit + bit-relay は P2P のリレーサーバーとして実装されている
2680

2781
## 主要な概念
2882

29-
bit は Git にプラットフォーム非依存のコラボレーション機能を追加しています。ワークフローに入る前に、通常の Git + GitHub との違いを理解しておきましょう。
30-
3183
### bit — Git 実装
3284

33-
bit は MoonBit で書かれた Git 実装です。一部の未サポート機能(例: `--object-hash=sha256`)を除き、Git と互換性があります。既存の Git リポジトリをそのまま bit で扱え、その逆も可能です
85+
bit は MoonBit で書かれた Git 実装。一部の未サポート機能(例: `--object-hash=sha256`)を除き、Git と互換。既存の Git リポジトリをそのまま bit で扱えるし、その逆も可能
3486

3587
### hub — 分散型の Issue/PR 管理
3688

37-
GitHub のワークフローでは issue や PR は GitHub サーバー上に存在します。bit では**リポジトリ内部**に Git notes(`refs/notes/bit-hub`として保存されます。これにより:
89+
GitHub では issue や PR は GitHub サーバー上にある。bit では **リポジトリ内部** に Git notes(`refs/notes/bit-hub`として保存する。
3890

39-
- issuePR がリポジトリデータの一部となり、特定のホスティングに依存しない
91+
- issue/PR がリポジトリデータの一部になり、特定のホスティングに依存しない
4092
- 中央サーバーなしにピア間で同期できる
41-
- `bit issue init` で任意の git リポジトリにこのメタデータストアを初期化できる
93+
- `bit issue init` で任意の git リポジトリに初期化できる
4294

4395
### relay — 共有のためのリレーサーバー
4496

45-
bit-relay は 2 つの問題を解決する軽量リレーサーバーです:
97+
bit-relay は 2 つの問題を解決する軽量リレーサーバー。
4698

47-
1. **NAT/ファイアウォール越しのリポジトリ共有**: `bit relay serve` でローカルリポジトリを relay 経由で公開し、他者が `bit clone` できるポート開放不要
99+
1. **NAT/ファイアウォール越しのリポジトリ共有**: `bit relay serve` でローカルリポジトリを relay 経由で公開し、他者が `bit clone` できるポート開放不要
48100
2. **hub メタデータの同期**: `bit relay sync push/fetch` で issue/PR を relay 経由で配信・取得
49101

50102
```
@@ -55,53 +107,30 @@ bit-relay は 2 つの問題を解決する軽量リレーサーバーです:
55107
└──────────┘ └───────────┘
56108
```
57109

58-
コード(blob/tree/commit)は `serve`/`clone` で転送されます。hub メタデータ(issue/PR)は `sync push`/`sync fetch` で転送されます。これらは独立した操作です
110+
コード(blob/tree/commit)は `serve`/`clone` で、hub メタデータ(issue/PR)は `sync push`/`sync fetch` で転送する。これらは独立した操作
59111

60-
デフォルトの relay URL は本プロジェクトからデプロイされた公開インスタンス`bit-relay.mizchi.workers.dev`を指します。独自にデプロイすることも可能です — 詳細は [Hosting bit-relay](./host-bit-relay.md) を参照してください
112+
デフォルトの relay は本プロジェクトからデプロイした公開インスタンス`bit-relay.mizchi.workers.dev`を使う。独自にデプロイすることもできる。詳細は [Hosting bit-relay](./host-bit-relay.md) を参照
61113

62114
### sender — あなたの識別子
63115

64-
`sender` は relay 上でのあなたの識別名です(例: `alice`)。Ed25519 署名鍵と組み合わせることで、メッセージの発行者を証明します。GitHub 検証を行うと sender 名が GitHub ユーザー名と紐付き、`alice/my-repo` のような名前付きセッションが使えるようになります
116+
`sender` は relay 上での識別名(例: `alice`)。Ed25519 署名鍵と組み合わせて、メッセージの発行者を証明する。GitHub 検証を行うと sender 名が GitHub ユーザー名と紐付き、`alice/my-repo` のような名前付きセッションが使える
65117

66118
### session — 一時的な relay エンドポイント
67119

68-
`bit relay serve` を実行すると、relay に**セッション**が作成されます。セッションはランダム ID(例: `AbCdEfGh`)または名前付きパス(例: `alice/my-repo`)で識別される一時的なエンドポイントです。`serve` コマンドの実行中のみ有効です。
69-
70-
## 前提条件
120+
`bit relay serve` を実行すると、relay にセッションが作られる。セッションはランダム ID(例: `AbCdEfGh`)か名前付きパス(例: `alice/my-repo`)で識別される一時的なエンドポイント。`serve` コマンドの実行中のみ有効。
71121

72-
- **bit CLI** がインストール済み:
73-
```bash
74-
# シェルスクリプトでインストール(Mac/Linux)
75-
curl -fsSL https://raw.githubusercontent.com/mizchi/bit-vcs/main/install.sh | bash
76-
77-
# または MoonBit パッケージマネージャでインストール
78-
moon install mizchi/bit/cmd/bit
79-
```
80-
- 稼働中の **bit-relay** サーバー URL(例: `relay+https://bit-relay.mizchi.workers.dev`
81-
- (任意)署名付き publish 用の **Ed25519 署名鍵**
82-
83-
セットアップの確認:
84-
85-
```bash
86-
bit --version
87-
curl https://bit-relay.mizchi.workers.dev/health
88-
# => {"status":"ok","service":"bit-relay"}
89-
```
90-
91-
## 1. 環境設定
122+
## 詳細設定
92123

93124
### 環境変数
94125

95-
relay URL と sender ID を環境変数で設定します:
96-
97126
```bash
98127
# relay URL(serve/sync コマンドのデフォルト値)
99128
export BIT_RELAY_URL=relay+https://bit-relay.mizchi.workers.dev
100129

101-
# sender ID(あなたの識別名)
130+
# sender ID
102131
export BIT_RELAY_SENDER=alice
103132

104-
# (任意)署名鍵ファイルのパス
133+
# 署名鍵ファイルのパス(任意)
105134
export BIT_RELAY_SIGN_PRIVATE_KEY_FILE=~/.config/bit/relay-key.pem
106135
```
107136

@@ -116,106 +145,33 @@ openssl pkey -in ~/.config/bit/relay-key.pem -pubout -outform DER \
116145
| base64 | tr '+/' '-_' | tr -d '='
117146
```
118147

119-
## 2. GitHub ユーザー名検証
148+
### GitHub ユーザー名検証
120149

121-
relay が署名を要求する場合、署名鍵を GitHub アカウントと紐付けることで本人確認ができます。Ed25519 鍵と GitHub SSH 鍵の照合により身元を証明します
150+
署名鍵を GitHub アカウントと紐付けて本人確認できる。Ed25519 鍵と GitHub SSH 鍵を照合する仕組み
122151

123152
```bash
124153
# 鍵を登録し GitHub SSH 鍵と照合
125154
#(BIT_RELAY_SENDER と BIT_RELAY_SIGN_PRIVATE_KEY_FILE の設定が必要)
126155
bit relay sync push relay+https://bit-relay.mizchi.workers.dev
127156
```
128157

129-
検証完了後、relay セッションでランダム ID の代わりに名前付きパス(例: `alice/my-repo`)が使えるようになります。
130-
131-
## 3. リポジトリの初期化
158+
検証が通ると、ランダム ID の代わりに `alice/my-repo` のような名前付きセッションが使える。
132159

133-
git リポジトリを作成し、hub メタデータを初期化します:
134-
135-
```bash
136-
# リポジトリを新規作成
137-
mkdir my-project && cd my-project
138-
bit init
139-
echo "# My Project" > README.md
140-
bit add .
141-
bit commit -m "initial commit"
142-
143-
# issue/PR トラッキングを初期化
144-
bit issue init
145-
```
146-
147-
## 4. issue の作成
148-
149-
issue は対処すべき問題やタスクを宣言するものです:
150-
151-
```bash
152-
# issue を作成(解決策ではなく、問題を記述する)
153-
bit issue create --title "ログインページで特殊文字入力時にクラッシュする" \
154-
--body "パスワード欄に特殊文字を入力するとクラッシュが発生する"
155-
156-
# issue 一覧の確認
157-
bit issue list
158-
```
159-
160-
## 5. hub データを relay に push
161-
162-
ローカルの hub メタデータ(issue, PR, note)を relay サーバーに送信します:
163-
164-
```bash
165-
bit relay sync push relay+https://bit-relay.mizchi.workers.dev
166-
```
167-
168-
## 6. relay 経由でリポジトリを公開
169-
170-
リポジトリを relay 経由でリモート clone 可能にします:
171-
172-
```bash
173-
bit relay serve relay+https://bit-relay.mizchi.workers.dev
174-
```
175-
176-
出力:
177-
178-
```
179-
Session registered: abc123
180-
Clone URL: relay+https://bit-relay.mizchi.workers.dev/abc123
181-
```
182-
183-
clone URL を共同作業者に共有してください。コマンドが実行中の間、セッションは有効です。
184-
185-
### オプション
160+
### relay serve のオプション
186161

187162
| オプション | 説明 |
188163
|-----------|------|
189164
| `--allow-remote-push` | リモートからの push を受け付ける(`refs/relay/incoming/` に保存) |
190165
| `--auto-fetch` | feature broadcast 検知時に自動 fetch |
191166
| `--repo <name>` | リポジトリ名を指定(名前付きセッションを有効化) |
192167

193-
## 7. relay から clone
194-
195-
共同作業者は公開されたリポジトリを clone できます:
168+
### relay URL 形式
196169

197-
```bash
198-
bit clone relay+https://bit-relay.mizchi.workers.dev/abc123
199-
cd abc123
200-
```
201-
202-
## 8. relay から hub データを取得
203-
204-
clone 後、relay から hub メタデータ(issue, PR)を取得します:
205-
206-
```bash
207-
bit relay sync fetch relay+https://bit-relay.mizchi.workers.dev
208-
```
209-
210-
取得後の確認:
211-
212-
```bash
213-
# issue 一覧
214-
bit issue list
215-
216-
# PR 一覧
217-
bit pr list
218-
```
170+
| 形式 | 動作 |
171+
|------|------|
172+
| `relay+https://host` | relay API を直接使用(TLS) |
173+
| `relay+http://host` | relay API を直接使用(非 TLS、ローカル開発用) |
174+
| `https://host/repo.git` | smart-http を試行、404 時に relay fallback |
219175

220176
## フルワークフロー: Alice と Bob
221177

@@ -259,19 +215,11 @@ bit issue list
259215
bit pr list
260216
```
261217

262-
## relay URL 形式
263-
264-
| 形式 | 動作 |
265-
|------|------|
266-
| `relay+https://host` | relay API を直接使用(TLS) |
267-
| `relay+http://host` | relay API を直接使用(非 TLS、ローカル開発用) |
268-
| `https://host/repo.git` | smart-http を試行、404 時に relay fallback |
269-
270218
## bithub — bit の Web UI
271219

272-
[bithub](https://github.com/bit-vcs/bithub) は bit と連携して GitHub のような UI を提供する Web サーバーです。現在開発中です
220+
[bithub](https://github.com/bit-vcs/bithub) は bit と連携して GitHub のような UI を提供する Web サーバー。現在開発中
273221

274-
- 馴染みのある Web インターフェースでリポジトリを閲覧(`/blob/<path>``/issues` など)
222+
- Web インターフェースでリポジトリを閲覧(`/blob/<path>``/issues` など)
275223
- bit-relay 経由で同期された issue を表示
276224
- relay を通じて他の bithub ノードを発見(`/relay`
277225
- Cloudflare Workers またはローカルサーバーとして動作
@@ -291,6 +239,6 @@ bit pr list
291239

292240
## トラブルシューティング
293241

294-
- **"session not found"**: ホスト側の `bit relay serve` が停止した可能性があります。ホストに再起動を依頼してください
295-
- **署名エラー**: `BIT_RELAY_SENDER``BIT_RELAY_SIGN_PRIVATE_KEY_FILE` が設定されているか確認するか、`RELAY_REQUIRE_SIGNATURE=false` で起動した relay を使用してください
296-
- **接続拒否**: relay URL が正しいか、サーバーが起動しているか確認してください`curl <relay-url>/health`)。
242+
- **"session not found"**: ホスト側の `bit relay serve` が停止している可能性がある。ホストに再起動を依頼する
243+
- **署名エラー**: `BIT_RELAY_SENDER``BIT_RELAY_SIGN_PRIVATE_KEY_FILE` が正しく設定されているか確認する。テスト時は `RELAY_REQUIRE_SIGNATURE=false` で起動した relay を使う
244+
- **接続拒否**: relay URL が正しいか、サーバーが起動しているか確認する`curl <relay-url>/health`)。

0 commit comments

Comments
 (0)