docs: add webhooks documentation (API only) [OD-702] - #2767
claudiacodacy wants to merge 3 commits into
Conversation
|
Overall readability score: 54.21 (🟢 +0.05)
View detailed metrics🟢 - Shows an increase in readability
Averages:
View metric targets
|
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Pull Request Overview
No merge-blocking implementation issues were identified. Codacy reports the PR is up to standards, with no new issues or coverage findings.
The acceptance criteria lack automated verification, particularly for strict MkDocs/Vale validation, navigation, permissions, API examples, payload handling, and delivery behavior.
About this PR
- Add automated documentation validation covering strict MkDocs/Vale checks, navigation, permissions, API operations, payload/signature details, and delivery behavior.
Test suggestions
- Validate the webhook documentation builds with mkdocs build --strict and is included in the generated site.
- Validate the webhook page is registered under Organizations > Managing integrations.
- Validate documentation covers create, list, and delete API operations with permissions and entitlement behavior.
- Validate documentation describes event triggers and payload variants for branch and pull request analyses.
- Validate documentation describes all delivery headers and HMAC-SHA256 verification steps.
- Validate documentation describes timeout, retry, 4xx behavior, and delivery deduplication rules.
- Validate the organization permissions table grants webhook endpoint management to organization managers and admins only.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Validate the webhook documentation builds with mkdocs build --strict and is included in the generated site.
2. Validate the webhook page is registered under Organizations > Managing integrations.
3. Validate documentation covers create, list, and delete API operations with permissions and entitlement behavior.
4. Validate documentation describes event triggers and payload variants for branch and pull request analyses.
5. Validate documentation describes all delivery headers and HMAC-SHA256 verification steps.
6. Validate documentation describes timeout, retry, 4xx behavior, and delivery deduplication rules.
7. Validate the organization permissions table grants webhook endpoint management to organization managers and admins only.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
Restacks on #2767 (the API-only release for this week) and adds the org Integrations > Webhooks UI: the Add endpoint flow, the one-time signing-secret card, the endpoint list, and the upgrade prompt shown when the organization isn't entitled. Merge once the UI ships (OD-697, OD-699, OD-701, OD-709). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Documents the M1 webhooks feature for its first release: adding, listing, and deleting an organization webhook endpoint via the Codacy API (the org Integrations UI page ships in a follow-up), the quality.analysis.completed event, the delivery payload and headers, HMAC-SHA256 signature verification, and delivery behavior (10s timeout, retry on 5xx/timeout, no retry on 4xx, dedupe on X-Codacy-Delivery for retries and commitSha for reanalysis). Registers the page under Organizations > Managing integrations in mkdocs.yml, alongside the Slack and Jira integration pages, and adds a row to the organization permissions table. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Restacks on #2767 (the API-only release for this week) and adds the org Integrations > Webhooks UI: the Add endpoint flow, the one-time signing-secret card, the endpoint list, and the upgrade prompt shown when the organization isn't entitled. Merge once the UI ships (OD-697, OD-699, OD-701, OD-709). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
8d9b516 to
5d8fb7e
Compare
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Restacks on #2767 (the API-only release for this week) and adds the org Integrations > Webhooks UI: the Add endpoint flow, the one-time signing-secret card, the endpoint list, and the upgrade prompt shown when the organization isn't entitled. Merge once the UI ships (OD-697, OD-699, OD-701, OD-709). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Restacks on #2767 (the API-only release for this week) and adds the org Integrations > Webhooks UI: the Add endpoint flow, the one-time signing-secret card, the endpoint list, and the upgrade prompt shown when the organization isn't entitled. Merge once the UI ships (OD-697, OD-699, OD-701, OD-709). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs: add webhooks documentation (API only) [OD-702] Documents the M1 webhooks feature for its first release: adding, listing, and deleting an organization webhook endpoint via the Codacy API (the org Integrations UI page ships in a follow-up), the quality.analysis.completed event, the delivery payload and headers, HMAC-SHA256 signature verification, and delivery behavior (10s timeout, retry on 5xx/timeout, no retry on 4xx, dedupe on X-Codacy-Delivery for retries and commitSha for reanalysis). Registers the page under Organizations > Managing integrations in mkdocs.yml, alongside the Slack and Jira integration pages, and adds a row to the organization permissions table. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: update webhook retry timing to exponential backoff [OD-702] Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs: correct webhook retry delays to 1 s then 5 s [OD-702] Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs: add the org Integrations UI walkthrough for webhooks [OD-702] Restacks on #2767 (the API-only release for this week) and adds the org Integrations > Webhooks UI: the Add endpoint flow, the one-time signing-secret card, the endpoint list, and the upgrade prompt shown when the organization isn't entitled. Merge once the UI ships (OD-697, OD-699, OD-701, OD-709). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: merge the webhooks UI walkthrough and API sections into one page [OD-702] Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Update docs/organizations/integrations/webhooks.md Co-authored-by: Andrzej Janczak <122018786+andrzej-janczak@users.noreply.github.com> * docs: document webhook delivery caveats and multi-organization setup [OD-702] - The payload no longer carries `organization` (outbound-hooks#31): drop it from the examples and explain how to tell organizations apart - Define `timestamp` (analysis finish time, same value on retries) and `partial_success` - Say when a delivery is retried and when it isn't, without exact timings - Explain duplicate deliveries and which fields to dedupe on - Document the create-endpoint errors (400, 409, 403) and the required role - Note rejected hosts, no delivery guarantee, ordering, and that endpoints are kept when access to webhooks is lost Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Apply suggestion from @claudiacodacy * docs: move the webhook API walkthrough to Codacy API examples and tighten the webhooks page [OD-702] Move the curl walkthrough for createWebhookEndpoint, listWebhookEndpoints and deleteWebhookEndpoint to codacy-api/examples/managing-webhook-endpoints-programmatically.md, following the other "...-programmatically" example pages, and leave a tip on the webhooks page. The page URL and nav slot don't change. On the webhooks page, give each fact one home, put the add-endpoint procedure in one numbered list, and replace the dedupe bullet with a table. Headings and ids are unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs: add organization.id to the webhook payload, rework multi-organization setup and fix Vale errors [OD-702] The payload now carries organization.id (outbound-hooks#33), so the multi-organization section replaces the per-URL and match-every-secret options with a dictionary keyed by organization ID, built from listUserOrganizations. Also rewords the status bullet (partial_success, View logs) and removes the four spaced em dashes that failed Microsoft.Dashes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs: replace the dictionary setup steps with a pointer to listUserOrganizations [OD-702] Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * docs: reword the delivery guarantees bullet on the webhooks page [OD-702] Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: Andrzej Janczak <122018786+andrzej-janczak@users.noreply.github.com>
Summary
createWebhookEndpoint,listWebhookEndpoints,deleteWebhookEndpoint), thequality.analysis.completedevent, the delivery payload and headers, HMAC-SHA256 signature verification, and delivery behavior (10s timeout, retry on5xx/timeout, no retry on4xx, dedupe onX-Codacy-Deliveryfor retries andcommitShafor reanalysis).mkdocs.yml, alongside the Slack and Jira integration pages.This is a split of #2758. The org Integrations > Webhooks UI page (add-endpoint flow, signing-secret card, upgrade prompt) isn't built yet (OD-697, OD-699, OD-701, OD-709 are open) — we're shipping API access this week so Liberty Mutual and other requesters can try it, ahead of the UI. #2758 now carries the UI-specific delta on top of this page, and stays open to merge once the UI ships.
Sourcing
timestampin the signed body, noX-Codacy-Timestampheader,statusfield, retry behavior).codacy-websiteapiv3.yaml(ace8d3b2a0,a0dedc9cbf— the realoutbound-hooksbackend proxy merged this morning, 2026-09-28) andWebhookServicesImpl.scala, which confirmed: onlycreateWebhookEndpointis gated by the organization's webhooks entitlement (403ForbiddenActionif disabled), and all three operations require organization write permission (admin/manager).roles-and-permissions-for-organizations.md: added as footnote<sup>6</sup>—<sup>5</sup>was taken by#2763, merged after docs: add webhooks documentation (UI and API) [OD-702] #2758 was opened.Test plan
mkdocs build --strictpasses with no warningsvale docs/organizations/integrations/webhooks.md docs/organizations/roles-and-permissions-for-organizations.md— clean except the pre-existing repo-wide em dash spacing style (Microsoft.Dashes), advisory, matches convention used throughout the rest of the docsnav:entry confirmed by eye inmkdocs.yml, and by build output (site/organizations/integrations/webhooks/index.htmlexists)🤖 Generated with Claude Code