Tools and Utilities

pontos comes with a continuously increasing set of features. The following commands are currently available:

pontos-release

pontos-release - Release handling utility for C/C++ (CMake), JavaScript/TypeScript, Golang and Python Projects.

Note

We also provide easy-to-use GitHub Action, to create releases that we recommended to use instead of manually releasing with pontos-release.

# Release the next patch version (x.x.1) of project <foo>, using conventional
# commits for release notes, pushes the changes and release notes
pontos-release release --project <foo> --release-type patch
# Sign a release:
pontos-release sign --project <foo> --release-version 1.2.3
--signing-key 1234567890ABCDEFEDCBA0987654321 [--passphrase <for_that_key>]

pontos-version

pontos-version - Version handling utility for C, Go and Python Projects

# Update version of this project to 22.1.1
pontos-version update 22.1.1
# Show current projects version
pontos-version show
# Verify the current version information
pontos-version verify current
# calculate the next minor release version
pontos-version next minor

Supported config files:

  • CMake: CMakeLists.txt

  • Python: pyproject.toml and an arbitrary version module

  • Golang: go.md and version.go

  • JavaScript/TypeScript: package.json, src/version.js and src/version.ts

pontos-update-header

pontos-update-header - Handling Copyright header for various file types and licenses

Note

We also provide easy-to-use GitHub Actions, that updates copyright year in header of files and creates a Pull Request.

# Update year in Copyright header in files based on last commit in corresponding repo,
also add missing headers
pontos-update-header -d <dir1> <dir2>

Supported files: .bash .c .h .go .cmake .js .nasl .po .py .sh .txt .xml .xsl

Supported licenses: AGPL-3.0-or-later GPL-2.0-only GPL-2.0-or-later GPL-3.0-or-later

Copyright header schema: Copyright (C) 2020-2022 Greenbone AG

pontos-changelog

pontos-changelog - Parse conventional commits in the current branch and create a changelog from the commit messages.

# Parse conventional commits and create <changelog_file>
pontos-changelog -o <changelog-file>
# Parse conventional commits between git tag 1.2.3 and 2.0.0 and print changelog to the console
pontos-changelog --current-version 1.2.3 --next-version 2.0.0

pontos-github

pontos-github - Handling GitHub operations, like Pull Requests (beta)

# create a PR on GitHub
pontos-github pr create <orga/repo> <head> <target> <pr_title> [--body <pr_body>]
# update a PR on GitHub
pontos-github pr update <orga/repo> <pr> [--target <target_branch>] [--title <pr_title>]        [--body <pr_body>]
# get modified and deleted files in a PR, store in file test.txt
pontos-github FS <orga/repo> <pull_request> -s modified deleted -o test.txt
# add labels to an Issue/PR
pontos-github L <orga/repo> <issue/PR> label1 label2

pontos-github-script

pontos-github-script - Run Python scripts for GitHub automation.

A number of useful GitHub scripts are available in the pontos repository.

# List all members of a GitHub Organization
pontos-github-script --token <ghp_XYZ> scripts/github/members.py <organization>

pontos-nvd-cve

pontos-nvd-cve - Get information about a single CVE

# query a cve
pontos-nvd-cve CVE-2021-38397

pontos-nvd-cves

pontos-nvd-cves - Search for specific CVEs

# get all cves with a specific keyword
pontos-nvd-cves --keywords mac apple

pontos-nvd-cpe

pontos-nvd-cpe - Get information about a single CPE

pontos-nvd-cpe "9F5DB8E0-14E4-40EC-B567-CF1108EEE735"

pontos-nvd-cpes

pontos-nvd-cpes - Search for specific CPEs

# get all cpes for a specific keyword
pontos-nvd-cpes --keywords macos