ADR-0025: Upstream Contribution Pipeline
Decision: 7-step gate enforced by ContributionPipeline; draft PR is always true and cannot be overridden.
Why a programmatic gate: Contributing a connector to upstream without a compliance check would allow incomplete or untested connectors to land in the shared codebase. The 7 steps enforce the minimum bar automatically so contributors don’t need to read a checklist.
The 7 steps:
- Enabled guard —
contribute.enabled = truemust be set in INI; prevents accidental runs. - Registry check — connector must exist in
CLIENT_REGISTRY. - Compliance matrix — all 8
ConnectorMixinmethods implemented + test file present. - Test suite —
pytest tests/unit/must pass; aborts on any failure. - Branch creation —
contribute/{platform}-{timestamp};_PROTECTED_BRANCHESblocksmain/master. - Commit + push — uses
SubprocessRunner(injectable for testing). - Draft PR — GitHub REST API
POST /repos/{owner}/{repo}/pullswithdraft: true.
draft_pr hardcoded:
The PR is always a draft. This is intentional — human review before merge is non-negotiable
for a shared security library. No config knob exposes this.
Licensed under the Apache License, Version 2.0