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 moduleGolang:
go.md
andversion.go
JavaScript/TypeScript:
package.json
,src/version.js
andsrc/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
.ts
.tsx
.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