Team sync
Mirror GitHub org teams or ServiceNow assignment groups into Watchtower org teams.
POST /v1/orgs/{org}/team-syncswith{kind, config, secret, mapping?, prune?}(needsmanage_members). GitHub:config {org, api_base?},secret {token}, optionalmappingof GitHub login to email for members with a private profile email. ServiceNow:config {instance_url},secret {token}or{user, password}.GET /v1/orgs/{org}/team-syncs[/{id}],DELETE /v1/orgs/{org}/team-syncs/{id},POST /v1/orgs/{org}/team-syncs/{id}/run(runs on the janitor's next tick).The credential is sealed, never returned and never written to audit events. Source URLs must be https and pass the SSRF guard.
The janitor runs due syncs every 15 minutes. Members are matched to org users by email (case-insensitive); people without an account in the org are skipped.
Additive by default. With
prune: true, members of a synced team that the source no longer lists are removed. Teams the sync created stay when the sync is deleted.Every run that changes something is audited as
team_sync.apply.Limit: 10 syncs per org; GitHub runs read at most 50 teams and 500 profile lookups.