<div align="center">
<h3>tfver</h3>
<p>Terraform tool for fetching release metadata</p>
<p>
<!-- Build Status -->
<a href="https://actions-badge.atrox.dev/hansohn/tfver/goto?ref=main">
<img src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhansohn%2Ftfver%2Fbadge%3Fref%3Dmain&style=for-the-badge">
</a>
<!-- Github Tag -->
<a href="https://github.com/hansohn/tfver/tags/">
<img src="https://img.shields.io/github/tag/hansohn/tfver.svg?style=for-the-badge">
</a>
<!-- License -->
<a href="https://github.com/hansohn/tfver/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/hansohn/tfver.svg?style=for-the-badge">
</a>
<!-- LinkedIn -->
<a href="https://linkedin.com/in/ryanhansohn">
<img src="https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555">
</a>
</p>
</div>
### Description
Welcome to the **tfver** repo. This Python command line utility fetches Terraform
release metadata, filters releases based on query, generates release tags, and
returns the results in your desired output format [text|json|yaml]. It was built
with CI/CD in mind.
### Tags
Release tags generated by tfver follow the following naming convention. In
this example [hansohn/terraform](https://hub.docker.com/r/hansohn/terraform) is
a docker image that been tagged using this tool.
```
# tag formats
hansohn/terraform:latest latest release of Terraform
hansohn/terraform:1 latest 1.x.x version release of Terraform
hansohn/terraform:1.2 latest 1.2.x version release of Terraform
hansohn/terraform:1.2.3 1.2.3 version of Terraform
```
### Usage
#### Commands
```
$ tfver --help
Usage: tfver [OPTIONS]
Gathers a historical list of Terraform versions and their metadata. Produces
a filtered response based on arguement inputs.
Options:
-c, --count INTEGER Return latest N number of minor release
versions. [default: 1]
-r, --regex TEXT Filter release versions using regex pattern
matching. example: '^(0.15|1)$'
-b, --build TEXT Filter build versions by platform os and
arch. example: 'os=linux,arch=amd64'
-t, --tag-template TEXT Format tags to templatized string. String
template must include '{tag}' keyword which
will be replaced with actual tag value during
formatting. example: 'foo/bar:{tag}-dev'
-o, --output [text|json|yaml] The formatting style for command output.
[default: json]
-L, --vlist Reformats 'versions' key to list of dicts.
Defaults to key/value version dicts.
-M, --major Includes major version tag in metadata of all
lastest major version releases. example:
1.2.3 -> 1
-m, --minor Includes minor version tag in metadata of all
lastest minor version releases. example:
1.2.3 -> 1.2
-p, --prerelease Include pre-release versions in response.
-v, --verbose Include all release metadata in response.
-V, --verboseb Include all release metadata and all builds
in response.
--version Show the version and exit.
--help Show this message and exit.
```
#### Makefile
Additionally, a Makefile has been included in this repo to assist with common
development-related functions. I've included the following make targets for
convenience:
```
Available targets:
build Build python package
clean Clean everything
clean/build Clean python build directories
clean/docker Clean docker build images
clean/venv Clean virtual environment directory
docker Docker launch testing environment
docker/build Docker build image
docker/lint Lint Dockerfile
docker/push Docker push image
docker/run Docker run image
help Help screen
help/all Display help for all targets
help/short This help short screen
lint Run all linters, validators, and security analyzers
lint/bandit Python security linter
lint/black Python code formatter
lint/flake8 Python styleguide enforcement
lint/mypy Python static typing
lint/pylint Python linter
python/build Python build package
python/packages Python install packages from requirements file(s)
python/venv Python configure virtual environment
upload/check Python upload check
upload/pypi Python upload package to pypi
upload/testpypi Python upload package to testpypi
venv Create virtual environment and install requirements
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hansohn/tfver",
"name": "tfver",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.9",
"maintainer_email": "",
"keywords": "terraform,release,version",
"author": "Ryan Hansohn",
"author_email": "info@imnorobot.com",
"download_url": "https://files.pythonhosted.org/packages/6b/c4/da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1/tfver-1.0.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <h3>tfver</h3>\n <p>Terraform tool for fetching release metadata</p>\n <p>\n <!-- Build Status -->\n <a href=\"https://actions-badge.atrox.dev/hansohn/tfver/goto?ref=main\">\n <img src=\"https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhansohn%2Ftfver%2Fbadge%3Fref%3Dmain&style=for-the-badge\">\n </a>\n <!-- Github Tag -->\n <a href=\"https://github.com/hansohn/tfver/tags/\">\n <img src=\"https://img.shields.io/github/tag/hansohn/tfver.svg?style=for-the-badge\">\n </a>\n <!-- License -->\n <a href=\"https://github.com/hansohn/tfver/blob/main/LICENSE\">\n <img src=\"https://img.shields.io/github/license/hansohn/tfver.svg?style=for-the-badge\">\n </a>\n <!-- LinkedIn -->\n <a href=\"https://linkedin.com/in/ryanhansohn\">\n <img src=\"https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555\">\n </a>\n </p>\n</div>\n\n### Description\n\nWelcome to the **tfver** repo. This Python command line utility fetches Terraform\nrelease metadata, filters releases based on query, generates release tags, and\nreturns the results in your desired output format [text|json|yaml]. It was built\nwith CI/CD in mind.\n\n### Tags\n\nRelease tags generated by tfver follow the following naming convention. In\nthis example [hansohn/terraform](https://hub.docker.com/r/hansohn/terraform) is\na docker image that been tagged using this tool.\n\n```\n# tag formats\nhansohn/terraform:latest latest release of Terraform\nhansohn/terraform:1 latest 1.x.x version release of Terraform\nhansohn/terraform:1.2 latest 1.2.x version release of Terraform\nhansohn/terraform:1.2.3 1.2.3 version of Terraform\n```\n\n### Usage\n\n#### Commands\n\n```\n$ tfver --help\nUsage: tfver [OPTIONS]\n\n Gathers a historical list of Terraform versions and their metadata. Produces\n a filtered response based on arguement inputs.\n\nOptions:\n -c, --count INTEGER Return latest N number of minor release\n versions. [default: 1]\n -r, --regex TEXT Filter release versions using regex pattern\n matching. example: '^(0.15|1)$'\n -b, --build TEXT Filter build versions by platform os and\n arch. example: 'os=linux,arch=amd64'\n -t, --tag-template TEXT Format tags to templatized string. String\n template must include '{tag}' keyword which\n will be replaced with actual tag value during\n formatting. example: 'foo/bar:{tag}-dev'\n -o, --output [text|json|yaml] The formatting style for command output.\n [default: json]\n -L, --vlist Reformats 'versions' key to list of dicts.\n Defaults to key/value version dicts.\n -M, --major Includes major version tag in metadata of all\n lastest major version releases. example:\n 1.2.3 -> 1\n -m, --minor Includes minor version tag in metadata of all\n lastest minor version releases. example:\n 1.2.3 -> 1.2\n -p, --prerelease Include pre-release versions in response.\n -v, --verbose Include all release metadata in response.\n -V, --verboseb Include all release metadata and all builds\n in response.\n --version Show the version and exit.\n --help Show this message and exit.\n```\n\n#### Makefile\n\nAdditionally, a Makefile has been included in this repo to assist with common\ndevelopment-related functions. I've included the following make targets for\nconvenience:\n\n```\nAvailable targets:\n\n build Build python package\n clean Clean everything\n clean/build Clean python build directories\n clean/docker Clean docker build images\n clean/venv Clean virtual environment directory\n docker Docker launch testing environment\n docker/build Docker build image\n docker/lint Lint Dockerfile\n docker/push Docker push image\n docker/run Docker run image\n help Help screen\n help/all Display help for all targets\n help/short This help short screen\n lint Run all linters, validators, and security analyzers\n lint/bandit Python security linter\n lint/black Python code formatter\n lint/flake8 Python styleguide enforcement\n lint/mypy Python static typing\n lint/pylint Python linter\n python/build Python build package\n python/packages Python install packages from requirements file(s)\n python/venv Python configure virtual environment\n upload/check Python upload check\n upload/pypi Python upload package to pypi\n upload/testpypi Python upload package to testpypi\n venv Create virtual environment and install requirements\n```\n\n\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "'Fetches Terraform version metadata'",
"version": "1.0.0",
"split_keywords": [
"terraform",
"release",
"version"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6bc4da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1",
"md5": "b4de984508c85601cd35ff5dc7c60ff9",
"sha256": "5c9ac1546b671d2c40476ffce0e07698bf4dc1b953697a54f299fc23e45beace"
},
"downloads": -1,
"filename": "tfver-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "b4de984508c85601cd35ff5dc7c60ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.9",
"size": 23658,
"upload_time": "2023-01-04T05:57:37",
"upload_time_iso_8601": "2023-01-04T05:57:37.696018Z",
"url": "https://files.pythonhosted.org/packages/6b/c4/da4365bd7de750133eafd0efd0cb8b2d74762a83e7cc8684eac79a945ca1/tfver-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-04 05:57:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "hansohn",
"github_project": "tfver",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "click",
"specs": []
},
{
"name": "packaging",
"specs": []
},
{
"name": "pyyaml",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "semver",
"specs": []
}
],
"lcname": "tfver"
}