Skip to content

ci: dispatch coverage-fanout on merged source PRs#459

Open
eric-wang-1990 wants to merge 3 commits into
mainfrom
eric-wang-1990/ci/coverage-fanout-sender
Open

ci: dispatch coverage-fanout on merged source PRs#459
eric-wang-1990 wants to merge 3 commits into
mainfrom
eric-wang-1990/ci/coverage-fanout-sender

Conversation

@eric-wang-1990

Copy link
Copy Markdown

Summary

Wires databricks-sql-nodejs into the multi-language coverage fan-out in databricks/databricks-driver-test. When a PR merges to main and touched driver source (a file under lib/), dispatch a coverage-fanout repository_dispatch to driver-test; its coverage-fanout-tracker.yml opens a tracking issue and runs the language-agnostic fan-out — a spec authored from this PR's diff, conformed as tests across every driver (csharp/python/go/nodejs/rust/kernel/jdbc).

Same sender adbc-drivers/databricks already runs; this is one of a set of sibling PRs bringing the remaining driver repos onto the flow.

What it does

  • Adds closed to the pull_request trigger types; the new trigger-coverage-fanout job gates on github.event.pull_request.merged == true.
  • Source-path filter (lib/): docs/CI/test-only merges don't kick off a full 7-leg fan-out.
  • Reuses the existing INTEGRATION_TEST_APP_ID/_PRIVATE_KEY App token (scoped to driver-test) + the same peter-evans/repository-dispatch pin adbc uses.
  • Tightens skip-integration-tests-pr's guard to exclude closed so it doesn't re-stamp a check on merged PRs.

Test Plan

  • YAML validates; job-guard audit confirms no existing job misfires on the new closed event.
  • After merge: a subsequent merged source PR shows a coverage-fanout dispatch + a new tracking issue in databricks/databricks-driver-test.

This pull request and its description were written by Isaac.

…ce PRs

Wires databricks-sql-nodejs into the multi-language coverage fan-out. When a PR merges to
main and touched driver source (a file under lib/), dispatch a
`coverage-fanout` repository_dispatch to databricks/databricks-driver-test.
Its coverage-fanout-tracker.yml then opens a tracking issue and runs the
language-agnostic fan-out (a spec authored from this PR's diff, conformed
across every driver).

- Adds `closed` to the pull_request trigger types; the new trigger-coverage-fanout
  job gates on pull_request.merged == true.
- Source-path filter (lib/): docs/CI/test-only merges don't warrant a full fan-out.
- Reuses the existing INTEGRATION_TEST App token (scoped to driver-test) + the
  same peter-evans/repository-dispatch pin adbc-drivers/databricks uses.
- Tightens skip-integration-tests-pr's guard to exclude `closed` so it doesn't
  re-stamp a check on merged PRs.

Co-authored-by: Isaac
Signed-off-by: Eric Wang <e.wang@databricks.com>
Copilot AI review requested due to automatic review settings July 23, 2026 20:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…ermissions

peco-review-bot findings on the coverage-fanout sender (apply to all driver
repos — the job is identical everywhere):

- F1 (Medium): the merged-PR guard didn't constrain the base branch, so a PR
  merged into a release/feature branch that touched source would also dispatch
  a full fan-out authoring a spec from a diff that never reached main. Add
  `github.event.pull_request.base.ref == 'main'` to match the stated intent.
- F2 (Low): the job declared no permissions block, relying on the default
  GITHUB_TOKEN read scope for github.rest.pulls.listFiles; if org defaults
  tighten to none it 403s silently. Scope it explicitly: contents: read +
  pull-requests: read.

Co-authored-by: Isaac
Signed-off-by: Eric Wang <e.wang@databricks.com>
Further peco-review-bot findings on the coverage-fanout sender:

- Narrow the minted App installation token with `permission-contents: write`
  (all coverage_fanout needs is repository_dispatch → contents:write), matching
  the defense-in-depth the other dispatch jobs in these repos already use — so a
  leaked token can only fire dispatches, not exercise the App's full scope.
- Restore the version tag in two action-pin comments (`# pinned` → the exact
  `# vX.Y.Z` the SHA corresponds to, per repo convention) for auditability.

Co-authored-by: Isaac
Signed-off-by: Eric Wang <e.wang@databricks.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants