generate-bruno-files
ソースファイルを指すと、中に含まれるすべての HTTP リクエスト用に Bruno .bru ファイルを生成します — 適切な命名、連番、共有変数のコレクションへの吸い上げつきで。
お好みのパッケージマネージャでインストールしてください。
gh skill install oharu121/skills generate-bruno-filesnpx skills add oharu121/skills/generate-bruno-filespnpm dlx skills add oharu121/skills/generate-bruno-filesBruno を API クライアントとして使うプロジェクトでは .bruno/ ディレクトリにリクエストファイルが蓄積されます。これを手で作るのは地味に手間です — ソースから URL をコピーし、ヘッダーを整形し、ファイル名を考え、連番を決め、これを全エンドポイントで繰り返します。このスキルがソースを読んでくれます。
メソッド、URL、ヘッダー、クエリパラメータ、リクエストボディをコードから抽出。ユニークなエンドポイントごとに kebab-case の .bru ファイルを書き出します(URL パスではなく アクション ベースの命名 — list-users.bru であって get-api-v1-users.bru ではない)。次の連番を自動で付与し、シークレット・トークン・動的 ID は {{variable}} プレースホルダーにします(ハードコードしません)。
.bruno/collection.example.bru にまだない変数が必要になれば提案してくれます。ローカルの collection.bru(gitignore 対象)に値を入れることも忘れず案内してくれます。
- プロジェクトに API クライアントを追加したので、手で 1 本ずつ書かずに Bruno ファイルを用意したいとき
- 新メンバーのオンボーディングで「開いて Send 押すだけ」の
.bruno/コレクションを用意したいとき - クライアントモジュールをリファクタした後、Bruno ファイルを新しいエンドポイントに追従させたいとき
-
API 呼び出しの抽出。 指定したソースファイルを読み、各 HTTP リクエストのメソッド、URL、ヘッダー、クエリ、ボディを抽出します。
-
重複チェック。
.bruno/の既存.bruファイルを列挙。カバー済みのエンドポイントはスキップし、どれがスキップされたかを伝えます。 -
変数の棚卸し。
.bruno/collection.example.bruを読み、既に定義されている変数を把握。新規に必要な変数があればメモしておきます。 -
.bruファイル生成。 ユニークなエンドポイントごとに kebab-case 命名(verb-resource.bru)でmeta、HTTP 動詞ブロック、任意のauth:bearer、headers、body:jsonを含むファイルを作成します。 -
コレクション変数の更新。 新規変数は空値で
collection.example.bruに追加。ローカルのcollection.bruに値を入れるようリマインドします。 -
サマリー出力。 作成したファイルとメソッド、エンドポイント、ソース位置を表で表示。
src/api/orders.ts に API クライアントがあるとします。
/generate-bruno-files src/api/orders.tsスキルの出力:
| ファイル | メソッド | エンドポイント | ソース |
|---|---|---|---|
list-orders.bru | GET | /api/v1/orders | orders.ts:12 |
get-order.bru | GET | /api/v1/orders/{{order_id}} | orders.ts:24 |
create-order.bru | POST | /api/v1/orders | orders.ts:36 |
「collection.example.bru に order_id を追加しました。ローカルの collection.bru に値を入れてください」というリマインドも付きます。
命名・書式の規約
Section titled “命名・書式の規約”- 名前 — kebab-case、アクション先頭(
list-users.bruであってusers-list.bruやGET_users.bruではない) - 連番 — コレクション内で次に空いている
seq - 変数 — トークン、ID、シークレットは
{{name}}— ハードコードしない - 認証 — Bearer トークンを使う場合は
auth:bearerブロックを追加 - ヘッダー — 非標準ヘッダーのみ記載(
Content-Type: application/jsonは Bruno が自動処理するため不要) - ボディ — POST/PUT/PATCH では、ソースのペイロード形状に合う現実的なサンプルを記載
SKILL.md を GitHub で見る — 抽出ルール、.bru ファイル形式、コレクション変数規約。