Share what Jules produced

The asynchronous model is the appealing part: hand over a task, close the laptop, come back to a pull request. It is also the part that makes output hard to circulate, because nobody was present at the moment the work finished to decide what to do with it.

For a diff, the pull request is the right artifact and the review already happens there. For the other half of what an agent produces — the dependency audit, the "here is why this cannot be fixed the way you asked" write-up, the migration risk list — a PR is a container for changes being merged, and this is not that.

Let the workflow publish it

Have the run leave the document in the branch, and let the pipeline that already runs on that branch turn it into a page:

- name: Publish the analysis
  if: hashFiles('analysis.html') != ''
  run: |
    URL=$(curl -sS -X POST https://commareports.com/api/v1/reports \
      -H "Authorization: Bearer ${{ secrets.COMMA_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d "$(jq -n --arg t "$GITHUB_REF_NAME analysis" \
            --rawfile h analysis.html '{title:$t, html:$h}')" | jq -r .url)
    gh pr comment "$PR" --body "Analysis: $URL"

The publish happens whether or not anyone is watching, which is the only property that matters for an asynchronous agent. See GitHub Actions reports for the full pattern and the API docs for the request shape.

Why the document needs its own address

  • The audience is not the repo. Security, product and support cannot read a branch, and asking them to is how a good analysis dies unread.
  • It renders. Tables and diffs survive; a collapsed file preview in a PR does not.
  • Comments anchor to the claim. Feedback lands on the risk being disputed rather than on a line of a file — see commenting on HTML.
  • The link outlives the branch. Merged, closed or abandoned, the page still resolves.

Worth knowing

  • reports:write as a repo secret — see scoped tokens.
  • 5 MB of HTML per report body.
  • Reports are snapshots. Nothing re-runs when a reviewer opens one.

Try it

Free — unlimited reports, commenters and revisions.

See the CI guides →

Related