{"id":17111097,"url":"https://github.com/davidrjonas/semver-cli","last_synced_at":"2025-04-09T20:14:46.583Z","repository":{"id":55475519,"uuid":"127730179","full_name":"davidrjonas/semver-cli","owner":"davidrjonas","description":"semver-cli is a simple command line tool to compare and manipulate version strings.","archived":false,"fork":false,"pushed_at":"2024-08-07T08:53:59.000Z","size":16,"stargazers_count":44,"open_issues_count":3,"forks_count":24,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T20:14:42.672Z","etag":null,"topics":["cd","ci","cli","commandline","deployment","devops","scripting","semver"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidrjonas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-02T08:49:16.000Z","updated_at":"2025-02-21T02:06:04.000Z","dependencies_parsed_at":"2024-06-18T15:24:50.736Z","dependency_job_id":"045a2bd2-e95d-49c8-be5d-7fbada3a9a9b","html_url":"https://github.com/davidrjonas/semver-cli","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrjonas%2Fsemver-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrjonas%2Fsemver-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrjonas%2Fsemver-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidrjonas%2Fsemver-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidrjonas","download_url":"https://codeload.github.com/davidrjonas/semver-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cd","ci","cli","commandline","deployment","devops","scripting","semver"],"created_at":"2024-10-14T16:49:08.539Z","updated_at":"2025-04-09T20:14:46.559Z","avatar_url":"https://github.com/davidrjonas.png","language":"Go","readme":"semver-cli\n==========\n\n[![Build Status](https://travis-ci.org/davidrjonas/semver-cli.svg?branch=master)](https://travis-ci.org/davidrjonas/semver-cli)\n[![Go Report Card](https://goreportcard.com/badge/github.com/davidrjonas/semver-cli)](https://goreportcard.com/report/github.com/davidrjonas/semver-cli)\n\nsemver-cli is a simple command line tool to compare and manipulate version strings.\n\nIt is basically a cli wrapper around the excellent [Masterminds semver library](https://github.com/Masterminds/semver), with lots of help from the also excellent [Kingpin](https://github.com/alecthomas/kingpin)\n\n```\nusage: semver [\u003cflags\u003e] \u003ccommand\u003e [\u003cargs\u003e ...]\n\nCommand-line semver tools. On error, print to stderr and exit -1.\n\nFlags:\n      --help     Show context-sensitive help (also try --help-long and --help-man).\n  -v, --verbose  Verbose mode.\n\nCommands:\n  help [\u003ccommand\u003e...]\n    Show help.\n\n  satisfies \u003cVERSION\u003e \u003cCONSTRAINTS\u003e\n    Test if a version satisfies a constraint. Exit 0 if satisfies, 1 if not. If verbose, print an explanation to stdout.\n\n  greater \u003cA\u003e \u003cB\u003e\n    Compare two versions. Exit 0 if the first is greater, 1 if not. If verbose, print greater to stdout.\n\n  lesser \u003cA\u003e \u003cB\u003e\n    Compare two versions. Exit 0 if the first is lesser, 1 if not. If verbose, print lesser to stdout.\n\n  equal \u003cA\u003e \u003cB\u003e\n    Compare two versions. Exit 0 if they are equal, 1 if not.\n\n  inc \u003cCOMPONENT\u003e \u003cVERSION\u003e\n    Increment major, minor, or patch component.\n\n  get \u003cCOMPONENT\u003e \u003cVERSION\u003e\n    Get major, minor, patch, prerelease or metadata component.\n\n  set \u003cCOMPONENT\u003e \u003cVERSION\u003e \u003cVALUE\u003e\n    Set prerelease or metadata component.\n```\n\nExample\n-------\n\nDeploy only when the CI tag is within constraints and is greater than what is currently released. For example, with constraints 1.* and a released version of 1.4, a version of 1.5 would be released but a version of 2.0 or 1.2 would not.\n\n```bash\n#!/bin/bash\n\nCONSTRAINTS=$(jq .labels.constraints manifest.json)\nRELEASED=$(jq .image manifest.json | cut -d: -f 2)\n\nsemver satisfies \"$CI_TAG\" \"$CONSTRAINTS\" || exit 1\nsemver greater   \"$CI_TAG\" \"$RELEASED\"    || exit 1\n\ndeploy\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidrjonas%2Fsemver-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidrjonas%2Fsemver-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidrjonas%2Fsemver-cli/lists"}