Skip to content

feat(web): Dependabot page, Check now and NavBar badge - #39

Merged
meddlin merged 1 commit into
mainfrom
claude/dependabot-web
Nov 2, 2026
Merged

meddlin merged 1 commit into
mainfrom
claude/dependabot-web

Conversation

@meddlin

@meddlin meddlin commented Nov 2, 2026

Copy link
Copy Markdown
Owner

What this adds

Slice 3 of the Dependabot watch, stacked on #38 (which is stacked on #37). It is the page and badge of item 11 (d) in docs/dependabot-watch.md.

  • /dependabot: the newest saved check, by bucket (ready / review first / needs work / waiting), each PR with its reasons and suggested comments as text, Snooze (a week) and Dismiss (until it closes), a Put aside list with Restore, and a coverage footer (not checked, skipped, incomplete, GitHub quota). Findings carried over from an earlier run are marked last seen.
  • Check now runs GitLibApp.runDependabotCheck({ trigger: "web" }), so it takes the same lock as the CLI; if another check is running it says so, disables the button, and picks up the result when that check finishes. Refusals (no token, busy, GitHub 401) come back as a message, never a stack trace; a bug still throws.
  • NavBar badge: ready + review first + needs work (not waiting, not put aside), refreshed every minute, on tab focus and after any action on the page.
  • The page reads gitlib's database, not GitHub, until you press the button, and works without a token (it shows the last saved check and says what to set).

Safety notes

  • Titles, check names and reasons come from GitHub, so they are drawn as plain text (only `backticks` become code). Links are limited to https://github.com/...; a PR body is never read or shown.
  • Server functions live in server/dependabot.ts; logic is in dependabot.server.ts, as with chat. I checked the built client bundle contains no @gitlib/core runtime (node:sqlite, store code).

Verification

npm run typecheck, npm test (441 tests; 12 new for the helpers and the server logic with a fake GitHub) and npm run build pass. I also ran it in the browser against an isolated GITLIB_HOME seeded with a saved run: all four buckets, a CI-unknown PR, a carried-over last seen PR, an unreachable repo and a dismissed PR. Snooze, restore, the badge count, a 375 px width and the Check now error path all behaved. (The Check now click sent one request to GitHub with a made-up token and got the 401 message shown in the banner.) Accessibility: the buttons have explicit labels naming the PR, since a title would otherwise replace their names.

Not here yet

The schedule and its settings UI, and the model-written explanations (next slices).

🤖 Generated with Claude Code

… NavBar badge

/dependabot shows the newest saved check by bucket, each PR's reasons and
suggested comments (as text), snooze (a week) and dismiss buttons, a Put aside
list with Restore, and a coverage footer (not checked, skipped, quota). Check
now runs a check through the same lock as the CLI and says so when another
check is running. The page reads gitlib's database, never GitHub, until the
button is pressed.

The NavBar link carries a count of PRs that need a person (ready, review first,
needs work; not those waiting), refreshed every minute and after any action.

Text that comes from GitHub is drawn as plain text, links are limited to https
pages on github.com, and nothing from a PR body is shown.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Base automatically changed from claude/dependabot-storage to main November 2, 2026 22:06
@meddlin
meddlin merged commit 333291c into main Nov 2, 2026
1 check passed
@meddlin
meddlin deleted the claude/dependabot-web branch November 2, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant