Conversation
Agent-Logs-Url: https://github.com/rockcarver/frodo-cli/sessions/5d4695f5-a682-4fa4-a600-c6fadb110d31 Co-authored-by: vscheuber <28791378+vscheuber@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix integration-batch workflow output formatting
Fix Apr 19, 2026
integration-batch workflow outputs by compacting JSON before writing to $GITHUB_OUTPUT
vscheuber
approved these changes
Apr 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
integration-batchfailed in dry-run because multi-line JSON was written to$GITHUB_OUTPUT, which GitHub Actions rejects (Invalid format ' {'). This change normalizes workflow JSON outputs to single-line/compact form to preserve existing behavior while making output commands valid.Workflow output formatting (
.github/workflows/integration-batch.yml)prs_jsonin Compute candidate PR list before writing to$GITHUB_OUTPUT.selectedandskippedin Filter to PRs with successful combined status.mergedandmerge_skippedin Merge selected PRs.Behavioral scope
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/repos/rockcarver/frodo-cli/releases/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell in/node committer.name(http block)/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell o-cli/node_modules/.bin/watchman(http block)/opt/hostedtoolcache/node/24.14.1/x64/bin/node /opt/hostedtoolcache/node/24.14.1/x64/bin/node --no-warnings --enable-source-maps --experimental-loader file:///home/REDACTED/work/frodo-cli/frodo-cli/dist/loader.cjs /home/REDACTED/work/frodo-cli/frodo-cli/dist/app.cjs shell k/frodo-cli/node_modules/.bin/sh(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
Create a PR in rockcarver/frodo-cli to fix integration-batch workflow output formatting.
Context: A dry-run of Integration Batch workflow failed with:
Cause: multi-line JSON is being written to $GITHUB_OUTPUT.
Required changes in
.github/workflows/integration-batch.yml:$GITHUB_OUTPUT(e.g., prs_json, selected, skipped, merged, merge_skipped), ensure it is single-line/compact JSON usingjq -c.Specifically:
Do not change other behavior beyond what is necessary to fix the output formatting.
Add/keep job summary robustness as-is; the primary fix is compact JSON outputs.
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: 1. yes
2. propose the necessary changes for a switch to labels
Assistant: Here’s a concrete proposal to switch the release-type decision from “trigger phrases in comments/title” to labels, while keeping your key requirement:
mainstill produces a prerelease by defaultintegrationPR modelI’ll outline (1) the labeling scheme, (2) what changes in
pipeline.yml, (3) what changes indocs/PIPELINE.md, and (4) migration plan.1) Label scheme (simple and explicit)
Add exactly one of these labels to the PR you intend to merge into
main(usually theintegrationPR):release:patchrelease:minorrelease:majorIf none are present → prerelease (current default behavior).
Optional: you can also support
release:prerelease, but you don’t need it because “no label” already means prerelease.Precedence / validation rules
I recommend fail (safer, forces clarity).
2) Changes needed in
.github/workflows/pipeline.ymlWhy this is slightly tricky
Your pipeline runs on:
pushtomain(this is what actually releases)pull_requesttomain(CI only)On a
pushevent you don’t directly have “the PR that was merged” unless you look it up via the GitHub API. So the pipeline needs a small step:phips28/gh-action-bump-versionMinimal implementation strategy
Add a step in the build job (only for non-PR events) that:
${{ github.sha }}GET /repos/{owner}/{repo}/commits/{ref}/pulls(GitHub supports this)bump=patch|minor|major|prereleaseThen update
phips28/gh-action-bump-versionconfig so it bumps based on thatbumpvalue.Two ways to wire bump into
gh-action-bump-versionA) Easiest if supported: set
default:dynamically and/or setversion-type:/bump-type:input (depends on the action; we’d confirm supported inputs before editing).B) Reliable fallback: keep the action, but control the trigger wording by injecting a synthetic “wording” into the commit message or tag step (messy; I don’t recommend).
Given you already rely heavily on
phips28/gh-action-bump-version, the right approach is to adjust its inputs to accept an explicit bump type (if it supports it). If not, we should replace it with a small script that runsnpm version(ornode-based semver bump) deterministically.My recommendation: if
phips28/gh-action-bump-versiondoesn’t support explicit bump type cleanly, switch to a small custom step to bump version (it will be simpler than continuing to game “wording”).3) Updates needed in
docs/PIPELINE.mdChanges to the docs should say:
release:*label is present.integration-batchto include them inintegrationrelease:patch|minor|majoron the integration PR before merging itAlso remove the scary warning about “don’t accidentally type PATCH RELEASE in comments”.
4) Migration plan (safe rollout)
release:patch,release:minor,release:major) in the repo.pipeline.ymlto:docs/PIPELINE.mdto match.This pull request was created from Copilot chat.