Repository navigation
BUILD-13094: Use the shared-action reader for Repox dependency downloads - #1857
Conversation
00ac74d to
00f9db1
Compare
|
[From Codex] Applied the Gitar suggestion: removed the unused Vault reader fetch from orchestrator-secrets. Also forwarded ARTIFACTORY_RESOLVE_URL to every subproject test JVM as orchestrator.artifactory.url, keeping Orchestrator runtime downloads aligned with the action-selected reader while preserving SaaS deployment. Real Gradle test-JVM probes passed with unset, SaaS and Prod Edge resolve endpoints. |
00f9db1 to
49f4ad1
Compare
malte-skoruppa-sonarsource
left a comment
There was a problem hiding this comment.
LGTM, with one small question below before we merge.
49f4ad1 to
b8fe83b
Compare
malte-skoruppa-sonarsource
left a comment
There was a problem hiding this comment.
LGTM!
Code Review ✅ Approved 2 closed / 2 findings🟡 Medium risk · Routing QA dependency and Orchestrator downloads through the private Repox reader could fail artifact resolution if the reader role and endpoint diverge. Removes the explicit SaaS reader credential overrides from the three Orchestrator QA callers and forwards ✅ 2 closed✅ Quality: Unused Artifactory reader token still fetched from Vault
Closed: Quality: QA reader role silently changes from public-reader to private-reader
Verification Rules 2/2 met PRs 1 inspectedFunctional validation No results Rules 2 passed 1 not applicable
Broader impact PRs 1 inspectedCross-PR 1 PR inspected 0 open impacts
Auto-approval Not enabledFor more verification details, comment OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|





BUILD-13094: Keep dependency downloads and Orchestrator runtime downloads on the endpoint matching the action-managed reader.
QA callers currently override the shared action's reader with a SaaS credential. Remove those overrides and the unused Vault reader fetches. Forward
ARTIFACTORY_RESOLVE_URLto test JVMs asorchestrator.artifactory.url: build-gradle keepsARTIFACTORY_URLon SaaS for deployment, so removing the credential override alone would otherwise leave Orchestrator using a SaaS URL with an Edge token.Orchestrator is already at 6.4.4.4797.
Shared-action dependency:
SonarSource/ci-github-actions#359
Prepare this as a prerequisite for the shared rollout. This repository follows
@v2: it must land beforev2advances to the shared-action release. Merging the shared-action PR into master alone does not change this repository's action calls.Parent rollout:
https://sonarsource.atlassian.net/browse/BUILD-12980
QA reader choice
The three explicit Orchestrator QA callers (
qa_plugin,qa_ruling,qa_pr_analysis) intentionally request the action-managedprivate-reader. The public repository default would otherwise selectpublic-reader: live production probes show HTTP403 for the optionalorg.eclipse.lsp4j.jsonrpc:1.0.0Gradle metadata under that reader, which stops resolution. The private reader returns the correct HTTP404 for absent optional metadata and HTTP200 for the required POM/JAR, and it can read the Enterprise distribution used by QA. This is an explicit supported role input, not a manual credential override.The affected dependency belongs only to
integrationTestImplementation; the repository's integration-test task is independent of ordinarybuild/check, so the reader change is limited to these three QA callers. Ordinary Build/TestAnalyze/Windows-build paths retain their existing reader selection. Current@v2CI and the production-aware pilot both pass with this scoped change.Validation
Test plan
Proof this works for Prod Edge downloads
Controlled production-aware pilot passed on the actual PHP QA runner. Application/test sources are this PR's final head
49f4ad124ede06e5e98ff7c896f4c05c1b9d811d. The disposable workflow pins the merged action34a5cd54a008a57fb8e78ca41af265ab7cba66de, uses the same explicit private-reader input now in the PR, and adds only validation/logging scaffolding. Final PR references remain@v2: this proves the upcoming action behavior, not the current releasedv2default.Pilot: https://github.com/SonarSource/sonar-php/actions/runs/39536080602
Pilot definition: https://github.com/SonarSource/sonar-php/blob/50d30c97a61d027cf45f463cedc2adb58532c301/.github/workflows/build.yml
sonar-l-publiclabel in thesonar-prod-publicgroup, with fresh Gradle/Orchestrator homes and caching disabled.ARTIFACTORY_RESOLVE_URL=https://repox-internal.sonar.build/artifactorythrough the pinned action, without arepox-urloverride.-Dorchestrator.artifactory.url=https://repox-internal.sonar.build/artifactoryfrom this PR'sbuild.gradle.ktsforwarding. Pilot scaffolding only supplies logging and private configuration; it does not set that JVM property.LATEST_RELEASEto2026.5.2.132813and downloaded the private Enterprise ZIP directly from production Edge: 2026-10-21T03:03:28.7607064Z 03:03:28.710 INFO c.s.orchestrator.locator.Artifactory - Found [com.sonarsource.sonarqube:sonarqube-enterprise-lw:2026.5.2.132813:zip] at https://repox-internal.sonar.build/artifactory/sonarsource/com/sonarsource/sonarqube/sonarqube-enterprise-lw/2026.5.2.132813/sonarqube-enterprise-lw-2026.5.2.132813.zip. The resulting fresh ZIP is 537,257,473 bytes.Normal PR CI also passed on this final head with current
@v2, including plugin/ruling/PR-analysis QA, Windows QA and promotion: https://github.com/SonarSource/sonar-php/actions/runs/39495404884 . Gitar passes with no unresolved review threads.Scope: cold production dependency/private distribution downloads and 28 existing Linux plugin integration tests under LATEST_RELEASE. DEV, Windows and ruling suites were not production-piloted; their normal current-release CI passed. The earlier production pilot on
sonar-prod/sonar-mis retained at https://github.com/SonarSource/sonar-php/actions/runs/39495623256 ; the later run above closes the actual-public-runner coverage gap. Pilots asserted the deployment endpoint remained SaaS, but did not deploy, promote or advancev2.