Skip to content

cli: add a "GitHub" output format#634

Merged
woodruffw merged 21 commits intomainfrom
ww/github-workflow-commands
Apr 7, 2025
Merged

cli: add a "GitHub" output format#634
woodruffw merged 21 commits intomainfrom
ww/github-workflow-commands

Conversation

@woodruffw
Copy link
Copy Markdown
Member

Closes #633.

Closes #633.

Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
@woodruffw woodruffw marked this pull request as ready for review March 27, 2025 09:53
@woodruffw
Copy link
Copy Markdown
Member Author

This works, but comes with some significant limitations that make me hesitant to merge it: GitHub Actions currently limits check annotations to 10 per step, or 50 per job (if multiple steps are producing annotations). As a result, any zizmor run that produces a nontrivial number of annotations will have some annotations dropped, probably in a first-come-first serve basis.

In practice, I think this makes check annotations unworkable/unusable in the general case, since users have to dive into the action logs to see the findings that aren't given a check annotation due to the limit.

More context here: https://github.com/orgs/community/discussions/26680, https://github.com/orgs/community/discussions/68471

@woodruffw
Copy link
Copy Markdown
Member Author

I'm not fully sure why, but GitHub's annotations also seem to be slightly buggy with spans that end at the end of input:

The above should have three annotations (one at the very end of the file), but that last one doesn't render.

Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
Signed-off-by: William Woodruff <william@yossarian.net>
@woodruffw
Copy link
Copy Markdown
Member Author

This now works as expected:

Screenshot 2025-04-07 at 5 27 04 PM

The last thing to do here is document the limitations.

@woodruffw woodruffw merged commit 4d5c79a into main Apr 7, 2025
8 checks passed
@woodruffw woodruffw deleted the ww/github-workflow-commands branch April 7, 2025 23:51
aldur pushed a commit to aldur/zizmor that referenced this pull request May 5, 2025
* cli: add a "GitHub" output format

Closes zizmorcore#633.

Signed-off-by: William Woodruff <william@yossarian.net>

* try using SARIF path

Signed-off-by: William Woodruff <william@yossarian.net>

* fix lines

Signed-off-by: William Woodruff <william@yossarian.net>

* fmt

Signed-off-by: William Woodruff <william@yossarian.net>

* add --no-exit-codes

Signed-off-by: William Woodruff <william@yossarian.net>

* bump help snippet

Signed-off-by: William Woodruff <william@yossarian.net>

* bump snippet

Signed-off-by: William Woodruff <william@yossarian.net>

* integration test for github output

Signed-off-by: William Woodruff <william@yossarian.net>

* github: output tweaks

* update snapshot

* test-output: test GitHub output on just one file

* remove columns

* bump snapshot

* try something else

Signed-off-by: William Woodruff <william@yossarian.net>

* fixup snapshot

Signed-off-by: William Woodruff <william@yossarian.net>

* one last hack

Signed-off-by: William Woodruff <william@yossarian.net>

* add primary annotation to message

Signed-off-by: William Woodruff <william@yossarian.net>

* usage: document --format=github, add integration docs

Signed-off-by: William Woodruff <william@yossarian.net>

* docs: update release notes

---------

Signed-off-by: William Woodruff <william@yossarian.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: format output with GitHub Actions workflow commands

1 participant