mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
chore: auto-fix lint & formatting [skip ci]
This commit is contained in:
parent
6f1a334150
commit
811f8646e0
26 changed files with 304 additions and 306 deletions
|
|
@ -7,7 +7,7 @@ The console itself is served at `/admin`; its tabs are deep-linkable via the URL
|
|||
## Endpoints
|
||||
|
||||
| Endpoint | Description |
|
||||
|-------------------------------------------------|-------------------------------------------------------------------|
|
||||
| ----------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| `GET /admin` | Config console UI |
|
||||
| `GET /admin/login` | Start admin sign-in (GitHub OAuth) |
|
||||
| `GET /admin/logout` | Sign out and destroy the session |
|
||||
|
|
|
|||
|
|
@ -10,27 +10,27 @@ https://your-worker.workers.dev
|
|||
|
||||
## Endpoints
|
||||
|
||||
| Method | Path | Auth | Description |
|
||||
|----------|---------------------------------|-------------------|--------------------------------------------------------------------|
|
||||
| `GET` | `/health` | None | Health check |
|
||||
| `POST` | `/webhook` | HMAC signature | GitHub / Gitea / custom webhook ingestion (provider auto-detected) |
|
||||
| `POST` | `/webhook/:groupId` | Per-group secret | Per-group webhook ingress (only that group's routes fire) |
|
||||
| `POST` | `/discord/interactions` | Ed25519 signature | Discord interactions (slash commands, buttons, modals) |
|
||||
| `POST` | `/telegram/webhook` | Secret token | Telegram updates (bot `/gh` commands) |
|
||||
| `GET` | `/api/richheader` | None | Open Graph page for the Telegram avatar link-preview card |
|
||||
| `GET` | `/auth/github` | None | Start GitHub OAuth flow |
|
||||
| `GET` | `/auth/github/callback` | None | OAuth callback |
|
||||
| `GET` | `/auth/github/install` | Admin session | Post-install choice page: bind the installation to a group |
|
||||
| `POST` | `/auth/github/install/bind` | Admin session | Provision the chosen installation binding |
|
||||
| `DELETE` | `/auth/token/:userId` | Admin session | Revoke user token |
|
||||
| `POST` | `/api/comment` | Bearer token | Create issue comment |
|
||||
| `POST` | `/api/merge` | Bearer token | Merge pull request |
|
||||
| `POST` | `/api/close` | Bearer token | Close pull request |
|
||||
| `POST` | `/api/react` | Bearer token | Add reaction to issue |
|
||||
| `GET` | `/admin` | Admin session | Config console UI |
|
||||
| `GET` | `/admin/login` | None | Start admin sign-in (GitHub OAuth) |
|
||||
| `GET` | `/admin/logout` | Admin session | Sign out and destroy the session |
|
||||
| `GET` | `/admin/invite` | Admin session | Accept a group invite (browser page, `?token=…`) |
|
||||
| Method | Path | Auth | Description |
|
||||
| -------- | --------------------------- | ----------------- | ------------------------------------------------------------------ |
|
||||
| `GET` | `/health` | None | Health check |
|
||||
| `POST` | `/webhook` | HMAC signature | GitHub / Gitea / custom webhook ingestion (provider auto-detected) |
|
||||
| `POST` | `/webhook/:groupId` | Per-group secret | Per-group webhook ingress (only that group's routes fire) |
|
||||
| `POST` | `/discord/interactions` | Ed25519 signature | Discord interactions (slash commands, buttons, modals) |
|
||||
| `POST` | `/telegram/webhook` | Secret token | Telegram updates (bot `/gh` commands) |
|
||||
| `GET` | `/api/richheader` | None | Open Graph page for the Telegram avatar link-preview card |
|
||||
| `GET` | `/auth/github` | None | Start GitHub OAuth flow |
|
||||
| `GET` | `/auth/github/callback` | None | OAuth callback |
|
||||
| `GET` | `/auth/github/install` | Admin session | Post-install choice page: bind the installation to a group |
|
||||
| `POST` | `/auth/github/install/bind` | Admin session | Provision the chosen installation binding |
|
||||
| `DELETE` | `/auth/token/:userId` | Admin session | Revoke user token |
|
||||
| `POST` | `/api/comment` | Bearer token | Create issue comment |
|
||||
| `POST` | `/api/merge` | Bearer token | Merge pull request |
|
||||
| `POST` | `/api/close` | Bearer token | Close pull request |
|
||||
| `POST` | `/api/react` | Bearer token | Add reaction to issue |
|
||||
| `GET` | `/admin` | Admin session | Config console UI |
|
||||
| `GET` | `/admin/login` | None | Start admin sign-in (GitHub OAuth) |
|
||||
| `GET` | `/admin/logout` | Admin session | Sign out and destroy the session |
|
||||
| `GET` | `/admin/invite` | Admin session | Accept a group invite (browser page, `?token=…`) |
|
||||
|
||||
The `/admin/api/*` endpoints (routes, groups, members, invites, webhook secrets, send logs, audit log) are documented separately in the [Admin API](./admin).
|
||||
|
||||
|
|
@ -62,11 +62,11 @@ Accepts GitHub webhook payloads. Requires valid `X-Hub-Signature-256` header.
|
|||
|
||||
**Headers:**
|
||||
|
||||
| Header | Required | Description |
|
||||
|-------------------------|------------|----------------------------------------------------|
|
||||
| `X-Hub-Signature-256` | Yes | HMAC-SHA256 signature |
|
||||
| `X-GitHub-Event` | Yes | Event type name |
|
||||
| `X-GitHub-Delivery` | No | Unique delivery ID (used for dedup when present) |
|
||||
| Header | Required | Description |
|
||||
| --------------------- | -------- | ------------------------------------------------ |
|
||||
| `X-Hub-Signature-256` | Yes | HMAC-SHA256 signature |
|
||||
| `X-GitHub-Event` | Yes | Event type name |
|
||||
| `X-GitHub-Delivery` | No | Unique delivery ID (used for dedup when present) |
|
||||
|
||||
**Request Body:** GitHub webhook JSON payload (max 1MB).
|
||||
|
||||
|
|
@ -82,11 +82,11 @@ When `X-GitHub-Delivery` is present and the same delivery was already processed
|
|||
|
||||
**Error Responses:**
|
||||
|
||||
| Status | Body | Cause |
|
||||
|----------|------------------------------------|------------------------------------------|
|
||||
| `401` | `{"error": "Invalid signature"}` | Signature verification failed |
|
||||
| `400` | `{"error": "Invalid event"}` | Missing event header or malformed body |
|
||||
| `413` | `{"error": "Request too large"}` | Body exceeds 1MB limit |
|
||||
| Status | Body | Cause |
|
||||
| ------ | -------------------------------- | -------------------------------------- |
|
||||
| `401` | `{"error": "Invalid signature"}` | Signature verification failed |
|
||||
| `400` | `{"error": "Invalid event"}` | Missing event header or malformed body |
|
||||
| `413` | `{"error": "Request too large"}` | Body exceeds 1MB limit |
|
||||
|
||||
### Per-Group Webhook (`POST /webhook/:groupId`)
|
||||
|
||||
|
|
@ -102,10 +102,10 @@ Any JSON payload signed with `X-WebHooker-Signature: sha256=<hex>` (HMAC-SHA256
|
|||
|
||||
The primary flow is the App's **Setup URL** — set it to `{BASE_URL}/auth/github/install`. After a user installs the App, the browser lands on:
|
||||
|
||||
| Method | Path | Description |
|
||||
|----------|-------------------------------|--------------------------------------------------------------------------------------------------|
|
||||
| `GET` | `/auth/github/install` | Choice page: bind the installation to a new group or an existing group the signed-in user owns |
|
||||
| `POST` | `/auth/github/install/bind` | Provisions the binding (owner role re-checked) and redirects to `/admin?install=ok` |
|
||||
| Method | Path | Description |
|
||||
| ------ | --------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/auth/github/install` | Choice page: bind the installation to a new group or an existing group the signed-in user owns |
|
||||
| `POST` | `/auth/github/install/bind` | Provisions the binding (owner role re-checked) and redirects to `/admin?install=ok` |
|
||||
|
||||
## Error Format
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue