Skip to main content
CI pipelines upload test evidence to LaneSync so the EVIDENCING stage can verify artifacts and power quality scorecards. Bootstrapped workflow templates include authenticated upload out of the box.

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

Bootstrapped workflows request an OIDC token with audience lanesync:
No long-lived secrets required — the token is short-lived and cryptographically bound to the repository.

LaneSync API key (fallback)

For non-GitHub CI or manual scripts:
  1. Workspace admin creates a key in Settings → System → CI API Keys
  2. Store as repository secret LANESYNC_API_KEY
  3. Send Authorization: Bearer lsk_… on upload requests
When using an API key, include 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 from templates/.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
Response:

Upload test reports

POST /api/evidence/upload-report — multipart form, file field report. Same CI auth required. LaneSync parses JUnit XML and links test cases to features per Quality tracking.

Required artifacts

Configure artifact names in sdlc.yaml:
Bootstrapped CI produces these HTML reports even on empty repos (placeholder content) so day-zero bootstrap never blocks:
  • unit-tests.html
  • integration-tests.html
  • coverage/index.html
  • sast-scan-report.html
  • cve-scan.html
  • sdlc-evidence.json
CI template steps after tests use if: always() so artifacts upload even when tests fail — required for evidencing and audit.

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.
At minimum you need to:
  1. Add permissions: id-token: write to the upload job
  2. Mint an OIDC token with audience lanesync, or use a LaneSync API key
  3. Match pipeline name to a check in sdlc.yaml if needed
  4. POST metrics after test jobs complete with Authorization: Bearer …
  5. Set SDLC_API_URL for non-hosted deployments
  6. Send environment: dev | staging | production and a matching version in the payload so evidence is stored per-environment

Troubleshooting

See API Reference for full endpoint documentation.