Webhooks

Receive an installation.repositories_updated event

Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits. An organization admin changed which repositories the installation reaches. Added repositories are named, less those the installation can no longer read when it is sent (an event left with nothing added, nothing removed and the same selection is not sent); removed repositories carry only their ID, which the app may never have received. A change to or from all repositories names neither. Delivered only to the app installation's own webhook, whether or not the manifest lists the event, never to organization or repository endpoints. Pending deliveries of other events are not sent once the app loses access; this event still is, unless GitCafe suspended the app. GitCafe POSTs an immutable version 1 snapshot to an eligible active endpoint. Verify the timestamp and HMAC-SHA256 over timestamp + '.' + the unchanged UTF-8 request body using the indicated current signing-key generation. The signature value is sha256=<lowercase hex>. Retries reuse body and delivery identity but refresh timestamp and signing key. Delivery attempts are at least once; deduplicate by the signed body event id within each receiver subscription. The delivery header is an inspection identifier and is not covered by the signature. No ordering is promised. A 2xx response acknowledges acceptance. Network failures, 408, 425, 429 and 5xx retry within eight attempts or 24 hours; redirects and other statuses terminate. Retry-After is capped at one hour. See /docs/integrations/webhooks for configuration and failure recovery. This contract does not prove deployed transport qualification.

postWebhookinstallation.repositories_updated

Headers

X-GitCafe-Event'installation.repositories_updated' required

The supported event type.

X-GitCafe-Deliverystring required

Stable delivery identifier for inspection. Deduplicate using the signed body event id.

X-GitCafe-Timestampstring required

Unix seconds for this attempt. Check an appropriate receiver replay window before acceptance.

X-GitCafe-Key-Versionstring required

Current signing-key generation used for this attempt.

X-GitCafe-Signaturestring required

HMAC-SHA256 of timestamp + '.' + exact request body bytes. Compare in constant time.

Payload

idstring required
version'1' required
createdAtstring date-time required
type'installation.repositories_updated' required
repositorySelection'all' | 'selected' required
previousRepositorySelection'all' | 'selected' required
repositoriesRemovedTruncatedboolean required

Response

The receiver accepted the event. Any 2xx status has this meaning.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.