Browse Reference docs
ReferenceReference

Release payload schema

Reference the bounded GitHub comparison object consumed by the canonical release-summary Agent message Automation.

The canonical sender builds one JSON object from GitHub’s compare API and the local diff between the exact released tags.

Top-level fields

FieldTypeMeaning
sourcestringgithub_actions
environmentstringprod
repositorystringGitHub owner/name
previous_version / current_versionstringRelease versions without the v tag prefix.
previous_tag / current_tagstringExact git tags compared.
compare_urlstringCanonical GitHub comparison URL.
total_commitsintegerCommit count reported across comparison pages.
included_commitsintegerBounded entries present in commits.
commits_truncatedbooleanMore commits exist or at least one message was truncated.
commitsarrayAt most 120 commit evidence objects.
total_filesintegerChanged files observed from the local tag diff.
included_filesintegerBounded entries present in files.
files_truncatedbooleanMore than 40 files changed.
filesarrayUp to 40 files, ordered by change volume then name.
release_headerstringExact Markdown heading and blank line.
full_diff_footerstringExact Markdown full-diff link with leading blank lines.

Commit object

{
  "sha": "40-character-git-sha",
  "message": "Commit subject and body",
  "message_truncated": false,
  "author_name": "Human git author or null",
  "author_login": "GitHub login or null"
}

The sender selects the most recent bounded commits when the comparison is larger than the limit. The agent must respect commits_truncated and must not pretend the subset is complete.

File object

{
  "filename": "lib/example.ex",
  "status": "modified",
  "additions": 42,
  "deletions": 8
}

Possible normalized statuses include added, copied, removed, modified, renamed, changed, unmerged, unknown, and broken.

Bounds

  • Final encoded payload: 256 KiB
  • GitHub comparison input: 64 MiB
  • Commits: 120
  • One commit message: 4,096 bytes before further payload fitting
  • Changed files: 40
  • One filename: 4,096 bytes

If the initial selection does not fit the payload limit, the hardened builder reduces commit, message, and file evidence until it fits while preserving the truncation flags.

Deterministic wrappers

For current version 1.4.379:

{
  "release_header": "**Release 1.4.379**\n\n",
  "full_diff_footer": "\n\n[Full diff: v1.4.378 → v1.4.379](https://github.com/allocator-one/allocator-one/compare/v1.4.378...v1.4.379)"
}

The Automation maps these through $trigger.release_header and $trigger.full_diff_footer so the agent cannot change release identity or destination framing.