Commit graph

117 commits

Author SHA1 Message Date
github-actions[bot]
38ea820606 chore: auto-fix lint & formatting [skip ci] 2026-08-03 01:44:07 +00:00
78f0a4e28a
feat: edit existing messages for workflow run updates 2026-08-03 09:43:36 +08:00
4b3f5189a8
fix(push): use commit message as link text 2026-08-03 09:29:15 +08:00
e01ce3505e
fix(push): show commit links inline with messages 2026-08-03 09:25:13 +08:00
github-actions[bot]
5834861a8d chore: auto-fix lint & formatting [skip ci] 2026-08-03 01:19:33 +00:00
55eafaeecc
feat: link commit in check suite messages
Add clickable commit links in check_suite formatter output with fallback
URL when html_url is unavailable. Remove check_run from checks template
since formatter only handles check_suite events.
2026-08-03 09:19:00 +08:00
5deff66b8d
format: remove backticks from push commit short IDs 2026-08-03 09:11:28 +08:00
e2022de4bc
refactor(push): extract commitField helper to reduce duplication 2026-08-03 09:09:56 +08:00
7ee1e5899f
feat(admin): add route reordering with up/down buttons 2026-08-03 08:40:59 +08:00
ac8b4a77b8
fix(dispatch): enforce match criteria for fallback routes 2026-08-03 08:35:47 +08:00
80cc85cd76
fix: use variation selector-16 for star emoji 2026-08-03 08:31:51 +08:00
bec48233fa
refactor(admin): narrow workflows template filter to workflow_run 2026-08-03 08:24:31 +08:00
a001efea5f
feat(admin): add route templates to editor 2026-08-03 08:16:34 +08:00
github-actions[bot]
d6c15a32cd chore: auto-fix lint & formatting [skip ci] 2026-08-02 23:31:48 +00:00
b14b9f0bde
feat: add locales and tests for workflow_job, status, ping formatters 2026-08-03 07:30:38 +08:00
4f6b5929c1
docs: document Telegram richheader avatar card 2026-08-03 07:30:33 +08:00
1fc3991332
feat: add formatters for workflow_job, status, deployment, ping 2026-08-03 07:30:29 +08:00
fc2e2c2efa
feat(telegram): send author avatar as richheader link-preview card
Serve an OG page at /api/richheader and use a small link-preview card
(avatar + author name) above the message instead of sending a photo.
2026-08-03 07:30:25 +08:00
be50d23319
refactor(admin): use target-row grid for target inputs 2026-08-03 07:30:07 +08:00
fb9550b94d
feat: support check_suite webhook events 2026-08-03 07:25:21 +08:00
github-actions[bot]
7179a35457 chore: auto-fix lint & formatting [skip ci] 2026-08-02 22:47:32 +00:00
50ae8c7607
feat(telegram): render markdown and send author avatar photo 2026-08-03 06:46:48 +08:00
github-actions[bot]
568e206643 chore: auto-fix lint & formatting [skip ci] 2026-08-02 21:19:33 +00:00
bd7a8f2632
feat: add Telegram push support with multi-target routes
Add a platform-aware route target system so a single route can forward
to several destinations at once (e.g. a Discord channel and a Telegram
group). Route.target becomes Route.targets[] with per-entry platform,
channelId/threadId for Discord and chatId/topicId for Telegram; the
legacy single-target format is normalized on load and accepted by the
admin API.

Implement the Telegram driver with HTML rendering and Bot API
sendMessage (chat_id + message_thread_id for topics, retry on 429/5xx),
plus /gh commands served over POST /telegram/webhook: login, logout,
comment, merge and close. The comment/merge/close commands resolve the
issue or PR from the replied-to notification message. OAuth binding now
stores a D1 telegram_links mapping and replies with a confirmation.

Sync the Telegram webhook from the scheduled trigger via setWebhook.
2026-08-03 05:19:05 +08:00
dcbe93be91
feat(admin): add detailed send log viewer with extended fields 2026-08-03 05:19:02 +08:00
3a6a2cbbc5
feat: migrate send logs and discord links to D1 2026-08-03 05:18:58 +08:00
github-actions[bot]
5a98e45544 chore: auto-fix lint & formatting [skip ci] 2026-08-02 19:42:35 +00:00
0af6b9a4b8
refactor: modularize into core/events/formatters/drivers 2026-08-03 03:36:36 +08:00
github-actions[bot]
7b341ff9f4 chore: auto-fix lint & formatting [skip ci] 2026-08-02 19:03:12 +00:00
d540d465d1
refactor: replace Discord Gateway DO with Interaction Endpoint 2026-08-03 03:02:42 +08:00
9bb9cb1444
feat(formatter): show queued/running status for workflow and check runs 2026-08-03 01:53:10 +08:00
809f89400b
feat: add per-group emoji toggle and standardized embed titles 2026-08-03 01:25:03 +08:00
49baf63a17
feat: add job field to workflow run notification 2026-08-03 01:19:46 +08:00
github-actions[bot]
2e4cb24c1d chore: auto-fix lint & formatting [skip ci] 2026-08-02 16:44:42 +00:00
4edd468ace
ci: add workflow to auto-fix lint and formatting 2026-08-03 00:44:01 +08:00
1fc702ceb4
docs: add filter tutorial and clarify exact matching rules 2026-08-03 00:39:52 +08:00
8c9720b1b3
docs: document admin groups, OAuth redirect, and API renames 2026-08-03 00:33:18 +08:00
8c8cfbf211
fix: remove click prevent on route toggle switch 2026-08-03 00:12:50 +08:00
38daf7bc83
feat: ignore filters on fallback routes 2026-08-03 00:02:29 +08:00
bd33fa6835
fix: harden input validation, redirect safety, and error resilience 2026-08-02 23:56:58 +08:00
d419b9c940
feat: add fallback routes and repository event enrichment 2026-08-02 23:23:07 +08:00
44b8fead78
feat: add merge/close PR buttons to Discord PR notifications 2026-08-02 23:02:37 +08:00
d40f34cc4d
fix: skip validation for unchanged admin routes 2026-08-02 22:53:36 +08:00
9e0f21c538
feat(admin): add zh/en i18n to the config console
Introduce a lightweight useI18n composable (zh default, auto-detect via
navigator.language, manual toggle persisted to localStorage) with full
zh/en dictionaries, and wire translation keys through the console UI.
2026-08-02 08:40:01 +08:00
d3c1349d00
feat(admin): group-centric console navigation and group-scoped routes API
Add GET/PUT /api/groups/:groupId/routes endpoints that filter and merge
routes by group (backend forces groupId from the path param). Rework the
console so the top level lists groups; entering a group shows and manages
only that group's routes. Drop the route-level group selector and the
now-redundant group badge on route cards.
2026-08-02 08:39:46 +08:00
62985a2f3f
feat(admin): groups management UI in the console
Add a super-admin-only Groups tab to create, edit and delete groups
(name, admin ids, owner scope). Routes now require a group via a select
in the editor, group names are shown on route cards, and the new
useMe/useGroups composables back the UI.
2026-08-02 08:16:05 +08:00
537f4cbb84
feat(admin): scope groups to specific GitHub orgs/users
Add an optional owners[] field to groups (super-admin only). When set,
only webhook events whose repository owner or organization login matches
enter that group's routes; empty owners means no restriction, keeping
existing routes backward compatible.

- types: Group.owners?, groups.ts groupAcceptsOwners()
- webhook.ts eventOwners() extracts repo owner + org login
- discord.ts dispatch skips routes whose group rejects the event owner
- admin-routes.ts validateGroups() validates owners list
2026-08-02 08:15:49 +08:00
667b8038af
feat(web): auto dark mode for terms and privacy pages
Tokenize the legal page palette into CSS variables and add a
prefers-color-scheme:dark override so /terms and /privacy follow the
device theme, matching the landing page and admin console.
2026-08-02 08:14:03 +08:00
c2b78bef69
feat(web): link landing docs button to the docs site
Point the homepage Documentation card at the hosted docs site
(https://webhooker.docs.worldexecute.me), language-aware: /zh for
Chinese and / for English. Still overridable via DOCS_URL.
2026-08-02 07:51:50 +08:00
83794c251f
feat(web): auto dark mode for admin console
Add a prefers-color-scheme dark palette to the Nuxt console so it
follows the device/OS theme automatically. Tokenize the previously
hardcoded dot-grid, sticky header, switch knob and overlay scrim so
they invert correctly, and set color-scheme: dark for native controls.
2026-08-02 07:51:46 +08:00