{"id":20671738,"url":"https://github.com/diareuse/taggy","last_synced_at":"2026-05-18T07:34:33.149Z","repository":{"id":137482451,"uuid":"356370098","full_name":"diareuse/taggy","owner":"diareuse","description":"Tagging utility for (nearly) all version schemes. Created on the basis of semver.org","archived":false,"fork":false,"pushed_at":"2026-03-23T12:56:50.000Z","size":222,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-24T10:26:16.851Z","etag":null,"topics":["git","semver","tag","tagging"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diareuse.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-04-09T18:52:22.000Z","updated_at":"2026-03-23T12:56:55.000Z","dependencies_parsed_at":"2024-11-17T00:16:42.069Z","dependency_job_id":null,"html_url":"https://github.com/diareuse/taggy","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/diareuse/taggy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diareuse%2Ftaggy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diareuse%2Ftaggy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diareuse%2Ftaggy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diareuse%2Ftaggy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diareuse","download_url":"https://codeload.github.com/diareuse/taggy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diareuse%2Ftaggy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33169329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["git","semver","tag","tagging"],"created_at":"2024-11-16T20:29:10.490Z","updated_at":"2026-05-18T07:34:33.143Z","avatar_url":"https://github.com/diareuse.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"art/logo.png\" width=\"128px\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTaggy\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eMake your tagging easier and predictable\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.codacy.com/gh/diareuse/taggy/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=diareuse/taggy\u0026amp;utm_campaign=Badge_Grade\"\u003e\n        \u003cimg src=\"https://app.codacy.com/project/badge/Grade/a30de5da7cc943a899a171eabd99ecc8\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.codacy.com/gh/diareuse/taggy/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=diareuse/taggy\u0026amp;utm_campaign=Badge_Coverage\"\u003e\n        \u003cimg src=\"https://app.codacy.com/project/badge/Coverage/a30de5da7cc943a899a171eabd99ecc8\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/diareuse/taggy/actions/workflows/coverage-report.yml\"\u003e\n        \u003cimg src=\"https://github.com/diareuse/taggy/workflows/Coverage%20Report/badge.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/diareuse/taggy/actions/workflows/build-artifacts.yml\"\u003e\n        \u003cimg src=\"https://github.com/diareuse/taggy/workflows/Build%20Artifacts%20(Native%20Images)/badge.svg\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Download\n\nNavigate to [Releases](\"https://github.com/diareuse/taggy/releases\"), download binary per your platform.\n\n## Usage\n\n\u003e Please note that `taggy` requires mandatory `pattern` parameter. You should create an alias depending on which pattern\n\u003e you would like to use.\n\n```bash\n# vanilla semantic versioning\nalias tagsem=\"taggy --pattern \\\"([0-9]+\\.)+[0-9]+(-[a-z]+[0-9]+)?\\\"\" # 2.13.46 || 2.13.46.1 || 2.13.46-dev2\n\n# year based versioning (does not conform with semver)\nalias tagdate=\"taggy --pattern \\\"$(date +%Y)(\\.[0-9]+)+(-[a-z]+[0-9]+)?\\\"\" # 2022.10 || 2022.10.1 || 2022.10-dev2\n```\n\n```markdown\nusage: taggy [-a \u003carg\u003e] [--everywhere] [-f] [-p] --pattern \u003carg\u003e\n       [--postfix-separator \u003carg\u003e] [-t \u003carg\u003e] [-v \u003carg\u003e]\n -a,--postfix \u003carg\u003e             Appends postfix (after) to the latest\n                                fetched or provided version. If not\n                                provided, the program will try to reuse\n                                existing postfix from the last tag.\n                                Whenever the last tag contains number it's\n                                incremented if and only if the provided\n                                postfix matches with the tag's postfix.\n                                Even if this last tag has no postfixes it\n                                will be omitted. Increment is always\n                                preferred on postfix (1.0.0-dev1 -\u003e\n                                1.0.0-dev2), however if no postfix is\n                                found or provided the last number segment\n                                from the tag is incremented. (1.0.0 -\u003e\n                                1.0.1)\n    --everywhere                [DEPRECATED] Instructs the program to look\n                                for tags in every branch. This might be\n                                useful when features are separated by\n                                branches and not bound to specific\n                                version. If disabled the program will look\n                                only into merged tags (ie. current\n                                branch).\n -f,--force                     Forces all tags on all remotes (or push\n                                targets) to be deleted and created again.\n                                Tags will be deleted locally and on the\n                                provided or all remotes. Please note that\n                                not clearing tags on all remotes might\n                                result in pull conflicts.\n -p,--push                      Informs the program that you want to also\n                                push the tag you created. This is by\n                                default to all remotes. You can limit\n                                remotes by using -t or --push-targets.\n    --pattern \u003carg\u003e             Specifies java regex pattern for the\n                                program to use when listing tags. It\n                                bypasses git's implementation since it\n                                uses non-robust wildcard implementation.\n                                This parameter is required. See\n                                documentation for examples, visit\n                                regex101.com to test your implementation.\n    --postfix-separator \u003carg\u003e   Separator which will be used for parsing\n                                appended postfix and appending the postfix\n                                when constructing tag. Beware that if you\n                                want to change separator, you need to\n                                provide the entire ensemble. (ie. postfix,\n                                postfix-separator and version)\n -t,--push-targets \u003carg\u003e        Specifies which targets are used in order\n                                to push the newly created tags. Targets\n                                are separated with \",\" with no spaces.\n                                When used -p and -t in conjunction, the\n                                targets must not be empty.\n -v,--version \u003carg\u003e             Program will use this version code without\n                                any increments in order to construct new\n                                tag. Note that if postfix was provided it\n                                will use the postfix as well in the tag\n                                construction process.\n```\n\n## How `taggy` works\n\nIt works as a wrapper over `git` client installed on your device to fetch, sort, create and publish tags with respect to\nthe semantic versioning scheme. It uses a consistent comparator to determine which tag is the newest.\n\n---\n\nThe program will try to increment the lowest available version segment.\n\n```bash\n# \u003c- 1.0.0\ntagsem\n# -\u003e 1.0.1\n\n# \u003c- 1.0.0-alpha1 \ntagsem\n# -\u003e 1.0.0-alpha2\n\n# \u003c- 1.0.0-alpha3\ntagsem -a beta\n# -\u003e 1.0.1-beta1\n```\n\n---\n\nYou can use `taggy` to publish (push) tags on your behalf.\n\n```bash\ntagsem -p\n```\n\nAnd also implicitly request to rewrite any existing tags.\n\n```bash\ntagsem -fp\n```\n\n---\n\nCompletely new version? Not a problem.\n\n```bash\ntagsem -v 2.0.0 -a alpha1\n```\n\nDone with 2.0.0? Let's ship it!\n\n```bash\ntagsem -v 2.0.0 -p -t origin,eaplay\n```\n\n\u003ca href=\"https://www.flaticon.com/free-icons/dog-tag\" title=\"dog tag icons\"\u003eDog tag icons created by Nikita Golubev -\nFlaticon\u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiareuse%2Ftaggy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiareuse%2Ftaggy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiareuse%2Ftaggy/lists"}