DBDelve
DBDelve는 Rust 기반 빠른 다중 엔진 데이터베이스 클라이언트, 무료 오픈소스, 텔레메트리 없음
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Discord の会話を AI で要約して、GitHub に issue を作ったり、既存の issue にコメントしたりする Discord Bot です。 Cloudflare Workers 上で、Discord の HTTP Interactions として動きます。
| コマンド | 説明 |
|---|---|
/issue [count] | 選んだメッセージを要約して、新しい issue を作る |
/issue-comment [issue] [count] | 選んだメッセージを要約して、既存の issue にコメントする |
/issue-unlink | GitHub アカウントとの連携を解除し、トークンを無効にする |
count は選択肢に出す直近のメッセージ数です(1〜25、既定は 20)。issue には https://github.com/owner/repo/issues/12 か owner/repo#12 を指定します。省略すると、リポジトリを選んでから、最近更新された開いている issue(最大 25 件)から選びます。/issue-comment では続けて issue を選びます。issue とコメントの本文は、次の形になります。
<details> で折りたたむ)本文中の @user には、GitHub でメンションにならないようゼロ幅スペースを挟みます。
GitHub App がインストールされていて、利用者本人が権限を持つリポジトリだけを使えます。issue とコメントは、利用者の GitHub アカウントの名義で投稿されます。
GitHub と同じ順で探します。
.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md(.github/、ルート、docs/).github リポジトリの .github/ISSUE_TEMPLATE/テンプレートは最大 10 件まで読み、AI への指示に含めます。タイトルの接頭辞([Bug] など)は付けません。テンプレートの labels は反映しません。
| 使うもの | 用途 |
|---|---|
Workers AI(@cf/google/gemma-4-26b-a4b-it) | 要約 |
| D1 | Discord ユーザーと GitHub アカウントの連携情報(user_links) |
| KV | 操作途中のセッションと OAuth の途中状態(どちらも 10 分で消える) |
| Cron Trigger(毎日 JST 3:00) | 期限切れの連携情報を D1 から削除 |
GitHub の API は、GitHub App のユーザーアクセストークンで呼びます。トークンは期限の 5 分前に自動で更新します。
| パス | 内容 |
|---|---|
GET / | 導入方法と使い方の案内ページ |
GET /github/callback | GitHub OAuth のコールバック。連携の確認ページを出す |
POST /github/confirm | 確認ページの送信先 |
POST(上記以外) | Discord の Interactions |
src/
index.ts ルーティング、コマンドとコンポーネントの処理、Discord の UI
discord.ts 署名の検証、応答の編集
github.ts GitHub API(リポジトリ、issue、コメント、テンプレート)
oauth.ts GitHub OAuth、連携情報の保存とトークンの更新
summarize.ts Workers AI への指示
issue-body.ts issue とコメントの本文の組み立て
session.ts 操作途中のセッション
web.ts 案内ページと連携の確認ページ
migrations/ D1 のマイグレーション
scripts/ スラッシュコマンドの登録
Node.js と Cloudflare のアカウントが必要です。
npm install
KV と D1 を作り、出力された ID を wrangler.toml の [[kv_namespaces]] と [[d1_databases]] に書きます。
npx wrangler kv namespace create KV
npx wrangler d1 create discord-issue-bot
npx wrangler d1 migrations apply discord-issue-bot --remote
Discord Developer Portal でアプリケーションを作ります。
bot と applications.commands、権限に「チャンネルを見る」と「メッセージ履歴を読む」を指定します。https://discord-issue-bot.<account>.workers.dev)を設定します。デプロイしてから設定してください。保存するときに Discord が疎通を確かめます。Application ID と Public Key は wrangler.toml の [vars] に書きます。
GitHub の Developer settings で GitHub App を作ります。
https://<Worker のホスト>/github/callbackClient ID は wrangler.toml の [vars] の GITHUB_CLIENT_ID に書きます。
src/github.ts の GITHUB_APP_INSTALL_URL は、App のインストールページ(https://github.com/apps/<App の名前>/installations/new)にします。
npx wrangler secret put DISCORD_TOKEN
npx wrangler secret put GITHUB_CLIENT_SECRET
| 名前 | 内容 |
|---|---|
DISCORD_TOKEN | Discord の Bot トークン。メッセージ履歴の取得に使う |
GITHUB_CLIENT_SECRET | GitHub App の Client secret |
npm run deploy
コマンドの登録には、.dev.vars に DISCORD_APPLICATION_ID と DISCORD_TOKEN を書いておきます。コマンドの定義を変えたときも、もう一度実行します。
npm run register
ローカルで動かすときは、.dev.vars に Secret と同じ名前で値を書きます。.dev.vars はコミットしません。
npm run dev
Discord からローカルに届くようにするには、cloudflared などで公開した URL を Interactions Endpoint URL に設定します。
npm run typecheck