/circle-policy-agent

Primary LanguageGoApache License 2.0Apache-2.0

policy-agent

CircleCI

The policy-agent is essentially a CircleCI-flavored wrapper library around the Open Policy Agent (OPA), which will allow the users to write the policy documents in CircleCI terminology.

policy-agent is responsible, at its core, for doing the following:

tools setup

We use golangci-lint and task in this repository:

$ brew install go-task/tap/go-task
$ brew install golangci-lint

or

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.46.2

See common project tasks with task -l, including:

task lint
task fmt
task test

run lint

task lint

run tests

task test

API Documentation

With godoc, you can view generated html documentation on your machine for policy-agent. There are two task commands for convenience:

* doc: 		Run 'godoc', print docs url
* doc-open: Run 'godoc', open the docs url in your browser

Helpers

CircleCI has provided helper functions to make it easier to write Rego policies. To use this code, please include import data.circleci.config in your Rego file.

Currently supported helpers: