feat(metrics): count Redis webhook dedup hits (#2075)#3520
Conversation
Expose gittensory_webhook_dedup_total{backend="redis"} when the
self-host Redis delivery cache short-circuits a GitHub redelivery.
Mark-after-success semantics stay in server.ts (JSONbored#2572).
Co-authored-by: Cursor <cursoragent@cursor.com>
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - fixes requiredReview updated: 2026-07-05 15:27:31 UTC
🛑 Suggested Action - Fix Blockers
Review summary Nits — 1 non-blocking
CI checks failing
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
|
Gittensory is closing this pull request on the maintainer's behalf (CI is failing (validate, validate-code)). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
Summary
Closes #2075
isWebhookDeliveryDuplicate/rememberWebhookDeliveryinsrc/selfhost/redis-cache.tsso Redis webhook dedup hits incrementgittensory_webhook_dedup_total{backend="redis"}./v1/github/webhookpath through those helpers instead of inline get/set.ok, so failed webhooks stay retryable.Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlint— no workflow changesnpm run typechecknpm run test:coveragelocally;codecov/patchrequires ≥99% coverage of the lines AND branches you changed (aim for 100% on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.npm run test:workers— no worker/runtime changesnpm run build:mcp— no MCP changesnpm run test:mcp-pack— no MCP changesnpm run ui:openapi:check— no UI/API changesnpm run ui:lint— no UI changesnpm run ui:typecheck— no UI changesnpm run ui:build— no UI changesnpm audit --audit-level=moderateIf any required check was skipped, explain why:
src/selfhost/**,src/server.ts, unit tests).Safety
UI Evidencesection below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. SVG screenshots are not used as review evidence. Review-only screenshots or recordings are not committed to the repository.UI Evidence
N/A — no UI changes.
Notes
src/selfhost/**andsrc/server.tsonly (not guarded paths).checkAndMarkDeliveryhelper (refactor(selfhost): remove or wire the dead checkAndMarkDelivery helper #2572); the new check-only helper keeps mark-after-success in the caller.Made with Cursor