Go Licensing Processor - thing that extracts licenses of your applications into various formats.
Go to file
2020-02-08 13:04:56 +05:00
cmd/glp Initial commit. 2020-02-06 15:09:25 +05:00
configuration Initial commit. 2020-02-06 15:09:25 +05:00
httpclient Initial commit. 2020-02-06 15:09:25 +05:00
outputters Get copyrights from license file. 2020-02-08 12:51:42 +05:00
parsers Generate template URLs if wasn't found in HTML output and license URL generation. 2020-02-08 12:28:30 +05:00
projecter Get copyrights from license file. 2020-02-08 12:51:42 +05:00
structs Get copyrights from license file. 2020-02-08 12:51:42 +05:00
glp.example.yaml Initial commit. 2020-02-06 15:09:25 +05:00
go.mod Added version as separate column in CSV, licenses detection and complete Go dep parser. 2020-02-07 20:37:42 +05:00
go.sum Added version as separate column in CSV, licenses detection and complete Go dep parser. 2020-02-07 20:37:42 +05:00
README.md Update README. 2020-02-08 13:04:56 +05:00

GLP

GLP stands for Go Licensing Processor. It is an utility that parses application's dependencies, gets their licenses and copyright information and writing gathered data into report file.

Supported languages

  • Go (dep and modules)

Supported report file formats

  • CSV

Supported VCS and sites

It was tested for git repositories with various sites (github.com, gitlab.com, self-hosted Gitea, even my giredore). It will work with any hosting that supports ?go-get=1 URL parameter and which outputs go-import and go-source meta lines.

But there are some caveats appeared:

  • Github most of times will not add go-source meta line in HTML's <head> tag. There are a workaround for that here.

Installation

It is enough to issue:

go get -u go.dev.pztrn.name/glp/cmd/glp

Usage

See glp -h for a list of possible options.

Example usage

glp  -config ./.glp.yaml -pkgs /home/pztrn/projects/go/src/go.dev.pztrn.name/discordrone,/home/pztrn/projects/go/src/go.dev.pztrn.name/opensaps -outfile /home/pztrn/deps-test.csv

Configuration

For now you can configure only debug output for logging. See ToDo below.

ToDo

  • Ability to overwrite all things about dependency, like copyrights, license URL and so on via configuration file.
  • Ability to use it as library.
  • Ability to use it in CI with alerts about bad licenses.
  • Ability to use it for projects written in other languages than Go (javascript, python, java, and so on).
  • More outputters - PDF, xlsx and so on.
  • (Maybe) Use go list output for gathering dependencies.