Skip to content

Latest commit

 

History

577 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

publiccode.yml parser for Go

Join the #publiccode channel Get invited

A Go parser and validator for publiccode.yml files.

publiccode.yml is an international standard for describing public software, which should be placed at the root of Free/Libre and Open Source software repositories.

This parser performs syntactic and semantic validation according to the official spec.

Features

  • Go library and CLI tool (publiccode-parser)
  • Supports the latest version of the publiccode.yml Standard
  • publiccode-parser can output validation errors as JSON or in errorformat friendly way
  • Verifies the existence of URLs by checking the response for URL fields (can be disabled)

As a library

parser, err := publiccode.NewDefaultParser()

// error handling

publiccode, err := parser.Parse("/path/to/local/dir/publiccode.yml")
// OR
// parse.Parse("https://github.com/example/example/publiccode.yml")

Go Reference

From command line

The publiccode-parser binary can be used to validate a publiccode.yml from the command line.

To get the latest version use:

go install github.com/italia/publiccode-parser-go/v5/publiccode-parser@latest

Or get a precompiled package from the release page

Example:

$ publiccode-parser mypubliccode.yml
mypubliccode.yml:36:1: error: developmentStatus: developmentStatus must be one of the following: "concept", "development", "beta", "stable" or "obsolete"
mypubliccode.yml:48:3: warning: legal.authorsFile: This key is DEPRECATED and will be removed in the future. It's safe to drop it
mypubliccode.yml:12:5: warning: description.en.genericName: This key is DEPRECATED and will be removed in the future. It's safe to drop it

Run publiccode-parser --help for the available command line flags.

The tool returns 0 in case of successful validation, 1 when the file has validation errors or can't be read and 2 when it's invoked with no file argument or an unknown flag.

With --json the same exit codes apply and the output is always a JSON list, empty when there is nothing to report.

Contributing

Contributing is always appreciated. Feel free to open issues, fork or submit a Pull Request. If you want to know more about how to add new fields, check out the publiccode.yml project and its CONTRIBUTING.md guidelines.

See also

Maintainers

This software is maintained by community contributors.

License

© 2018-present Team per la Trasformazione Digitale - Presidenza del Consiglio dei Ministri

Licensed under the EUPL 1.2. The version control system provides attribution for specific lines of code.

About

publiccode.yml parser library and validator in Go

Topics

Resources

Security policy

Stars

23 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages