Add italia/publiccode-parser-action to the allowlist#904
Merged
Conversation
Validates publiccode.yml against the spec (https://github.com/publiccodeyml/publiccode.yml) in CI. Signed-off-by: Fabio Bonelli <fb@fabiobonelli.it>
potiuk
approved these changes
May 30, 2026
Member
potiuk
left a comment
There was a problem hiding this comment.
Reviewed — clean. Recommend approval. ✅
Manual source review at the pinned SHA (21086c73ec0563e14c6748787efa1b34b025ad8c, v1.5.1):
action.yml— Docker action; 4 inputs passed as container args. No env/secret reads, no outputs.Dockerfile—FROM italia/publiccode-parser-go:v5.3.1(sameitaliaorg — the actual validator). Downloads reviewdog 0.21.0 viawget, verified withsha256sum -cagainst a pinned hash before extraction. Textbook good download pattern.entrypoint.sh— runspubliccode-parser; pipes toreviewdog -reporter=github-pr-reviewonly whencomment-on-pr=true. No pipe-to-shell, no secret/env reads, noGITHUB_PATH/GITHUB_ENV/GITHUB_OUTPUTwrites.
JS-rebuild check correctly N/A (Docker action). Soft note only: the base image is pinned by tag rather than digest — normal for a Docker action and same-org, so not a blocker.
Thanks for the thorough writeup, @bfabio.
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.
Request for adding a new GitHub Action to the allow list
Overview
Validates publiccode.yml against the spec in CI.
Project
apache/syncopepublishes apubliccode.ymland it'd be nice to use CI tovalidate it on every push and PR. See apache/syncope#1384.
publiccode.yml is the standard metadata format for public-sector FLOSS.
This action runs the official parser/validator so the file stays correct
over time.
Name of action: publiccode.yml parser and validation Action
URL of action: https://github.com/italia/publiccode-parser-action
Version to pin to (hash only): 21086c73ec0563e14c6748787efa1b34b025ad8c (v1.5.1)
Permissions
Default run (
comment-on-pr=false) needs no special permissions andmakes no GitHub API calls. Pass/fail is the workflow status.
With
comment-on-pr=truethe action pipes parser output to reviewdog(
-reporter=github-pr-review) to post inline comments, so the callingworkflow needs
pull-requests: writeandGITHUB_TOKEN. Nothingbeyond that. No secrets are read, no env files (
GITHUB_ENV,GITHUB_PATH,GITHUB_OUTPUT) are touched.Security
Docker action, so the JS-rebuild verification script does not apply.
action.yml: docker action, passes 4 inputs as args. No env/secretreads.
Dockerfile:FROM italia/publiccode-parser-go:v5.3.1(same org,the actual validator). At build time it downloads reviewdog v0.21.0
from GitHub releases, pinned by SHA256
(
ad5ce7d5ffa52aaa7ec8710a8fa764181b6cecaab843cc791e1cce1680381569)and checked with
sha256sum -c.entrypoint.sh: Runspubliccode-parseron the given path, pipes toreviewdog -reporter=github-pr-reviewonly whencomment-on-pr=true.Related Actions
No existing approved action validates publiccode.yml. The only other
way to get the same check is to call the parser binary directly in a
workflow step (run the
italia/publiccode-parser-gobinary byhand), which duplicates what this action already wraps and still pulls
third-party code.
Checklist
dist/matches a clean rebuild3Footnotes
Not sure about that, having more contributors will be nice for sure :) ↩
the action wrapper has no test suite, but the validation logic lives in italia/publiccode-parser-go, which is tested. The wrapper is a thin shell launcher ↩
N/A, this is a Docker action with no compiled JS. ↩