Skip to content

BUILD-11458 Add release channel pointer JSON schema#272

Merged
jayadeep-km-sonarsource merged 1 commit into
masterfrom
feat/jd/BUILD-11458-releaseChannelSchema
May 28, 2026
Merged

BUILD-11458 Add release channel pointer JSON schema#272
jayadeep-km-sonarsource merged 1 commit into
masterfrom
feat/jd/BUILD-11458-releaseChannelSchema

Conversation

@jayadeep-km-sonarsource
Copy link
Copy Markdown
Contributor

@jayadeep-km-sonarsource jayadeep-km-sonarsource commented May 28, 2026

BUILD-11458 — first task of epic BUILD-11447 (update-release-channel action for binary release channel pointers).

What

Adds the JSON Schema (draft-07) for the per-channel pointer JSON that the upcoming update-release-channel action will write to s3://downloads-cdn-eu-central-1-prod/<prefix>/<product>/<channel>.json.

  • update-release-channel/schema/v1.json — schema definition
  • update-release-channel/schema/README.md — versioning policy and field reference

Schema shape

Field Type Required
schemaVersion integer (const 1) yes
version string yes
updatedAt ISO-8601 / RFC 3339 UTC string yes

additionalProperties: true — consumers MUST ignore unknown fields. This lets us add optional fields later (e.g. per-platform artifact URLs, signature metadata) without bumping the schema version. A new file (v2.json) is only introduced for non-backwards-compatible changes; the in-document schemaVersion stays in lockstep with the filename.

Path convention

Action directory lives at the repo root (update-release-channel/) to match the existing convention in this repo (promote/, cache/, build-gradle/, ...). The spec mentioned .github/actions/update-release-channel/ but CONTRIBUTE.md documents top-level placement.

Validation

No sample fixtures are checked in. Validation against real action outputs lands with:

Both will pipe the dry-run JSON body through check-jsonschema against v1.json.

Not in scope

Action code, workflows, README for the action, and pilot wiring — those land in the follow-up tickets (BUILD-11459 through BUILD-11464). Draft until those are at least in flight.

@hashicorp-vault-sonar-prod
Copy link
Copy Markdown

hashicorp-vault-sonar-prod Bot commented May 28, 2026

BUILD-11458

Comment thread update-release-channel/schema/v1.json
@jayadeep-km-sonarsource jayadeep-km-sonarsource marked this pull request as ready for review May 28, 2026 09:16
@jayadeep-km-sonarsource jayadeep-km-sonarsource requested a review from a team as a code owner May 28, 2026 09:16
Copilot AI review requested due to automatic review settings May 28, 2026 09:16
@jayadeep-km-sonarsource jayadeep-km-sonarsource enabled auto-merge (squash) May 28, 2026 09:19
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Introduces the v1 JSON Schema (draft-07) and accompanying README for the per-channel release pointer JSON that the future update-release-channel GitHub Action will publish to S3. This is a docs/schema-only change; action code, tests, and wiring (shellspec, sonar, root README index) intentionally land in follow-up tickets.

Changes:

  • Adds update-release-channel/schema/v1.json defining required fields schemaVersion (const 1), version (non-empty string), and released_at (date-time string with regex).
  • Adds update-release-channel/schema/README.md documenting versioning policy, field reference, and validation plan.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
update-release-channel/schema/v1.json New draft-07 JSON Schema for the release channel pointer document.
update-release-channel/schema/README.md Documentation of schema versioning policy and field semantics.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread update-release-channel/schema/v1.json
Comment thread update-release-channel/schema/README.md Outdated
@jayadeep-km-sonarsource jayadeep-km-sonarsource force-pushed the feat/jd/BUILD-11458-releaseChannelSchema branch from fa5e0c4 to 3910c5d Compare May 28, 2026 09:25
Comment thread update-release-channel/schema/README.md Outdated
Author the JSON Schema (draft-07) for the per-channel pointer file written
by the upcoming update-release-channel action to
s3://<bucket>/<prefix>/<product>/<channel>.json.

Required fields:
- schemaVersion: const 1
- version: string
- released_at: ISO-8601 / RFC 3339 UTC timestamp

additionalProperties: true so future additive fields do not break v1
consumers. Schema lives at update-release-channel/schema/v1.json with a
README documenting the versioning policy (filename + schemaVersion in
lockstep, new file only for breaking changes).

Validation against real action outputs lands with the writer unit tests
(BUILD-11460) and the integration test workflow (BUILD-11461); no sample
fixtures are checked in here.

Part of epic BUILD-11447.
@jayadeep-km-sonarsource jayadeep-km-sonarsource force-pushed the feat/jd/BUILD-11458-releaseChannelSchema branch from 3910c5d to 8b9eb1f Compare May 28, 2026 09:28
@sonarqubecloud
Copy link
Copy Markdown

@jayadeep-km-sonarsource jayadeep-km-sonarsource merged commit a222890 into master May 28, 2026
14 checks passed
@jayadeep-km-sonarsource jayadeep-km-sonarsource deleted the feat/jd/BUILD-11458-releaseChannelSchema branch May 28, 2026 09:30
@gitar-bot
Copy link
Copy Markdown

gitar-bot Bot commented May 28, 2026

Code Review ✅ Approved 1 resolved / 1 findings

Introduces the JSON schema and versioning policy for release channel pointers to support upcoming automation. No issues found.

✅ 1 resolved
Edge Case: released_at pattern allows non-UTC offsets despite UTC requirement

📄 update-release-channel/schema/v1.json:24
The description and README both state the timestamp must be UTC, but the regex pattern (?:Z|[+-]\d{2}:\d{2}) accepts arbitrary timezone offsets (e.g. +05:30). This means a non-UTC value like 2026-05-01T10:00:00+05:30 would pass schema validation, violating the documented invariant.

If the intent is strict UTC-only, tighten the pattern to accept only Z (and optionally +00:00).

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

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.

3 participants