Overview
Evidence ingestion requires CI authentication. Tenant is derived from the verified GitHub OIDC token (repository_owner claim) or from a scoped LaneSync API key — never from an unauthenticated org body field.
Authentication
GitHub Actions OIDC (recommended)
Bootstrapped workflows request an OIDC token with audiencelanesync:
LaneSync API key (fallback)
For non-GitHub CI or manual scripts:- Workspace admin creates a key in Settings → System → CI API Keys
- Store as repository secret
LANESYNC_API_KEY - Send
Authorization: Bearer lsk_…on upload requests
org in the JSON body (must match the key’s workspace).
Bootstrapped workflows try
LANESYNC_API_KEY first, then fall back to OIDC automatically.Bootstrapped workflow
LaneSync pushes CI templates fromtemplates/.github/workflows/ during bootstrap. The upload step runs on release branch pushes with OIDC auth configured.
Bootstrapped workflows default
SDLC_API_URL to https://lanesync.dev. Self-hosted customers set the SDLC_API_URL repository variable. See Enterprise self-hosting.POST /api/evidence/upload
Auth:Authorization: Bearer <OIDC JWT | lsk_* API key>
Required fields: org, repo, version, pipeline, metrics
Upload test reports
POST /api/evidence/upload-report — multipart form, file fieldreport. Same CI auth required.
LaneSync parses JUnit XML and links test cases to features per Quality tracking.
Required artifacts
Configure artifact names insdlc.yaml:
unit-tests.htmlintegration-tests.htmlcoverage/index.htmlsast-scan-report.htmlcve-scan.htmlsdlc-evidence.json
Custom pipelines
If you maintain your own workflow instead of the LaneSync template, see the full step-by-step guide:Add LaneSync to an existing CI pipeline
Copy-paste blocks for unit tests, SAST, CVE scanning, coverage, and multi-environment evidence upload — dev, staging, and production.
- Add
permissions: id-token: writeto the upload job - Mint an OIDC token with audience
lanesync, or use a LaneSync API key - Match
pipelinename to a check insdlc.yamlif needed - POST metrics after test jobs complete with
Authorization: Bearer … - Set
SDLC_API_URLfor non-hosted deployments - Send
environment: dev | staging | productionand a matchingversionin the payload so evidence is stored per-environment
Troubleshooting
See API Reference for full endpoint documentation.