{"id":30713156,"url":"https://github.com/taj54/universal-version-bump","last_synced_at":"2026-04-11T03:13:01.471Z","repository":{"id":310700881,"uuid":"1040884472","full_name":"taj54/universal-version-bump","owner":"taj54","description":"A GitHub Action to automatically bump versions across projects (package.json, pyproject.toml, composer.json, etc.) with semantic versioning.","archived":false,"fork":false,"pushed_at":"2025-08-27T10:30:03.000Z","size":1507,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T17:00:43.020Z","etag":null,"topics":["automation","ci-cd","composer","github-action","npm","php","python","release","semantic-versioning","universal","version","version-bump","versioning"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/universal-version-bump","language":"TypeScript","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/taj54.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2025-08-19T16:42:03.000Z","updated_at":"2025-08-27T10:30:02.000Z","dependencies_parsed_at":"2025-08-19T19:27:30.029Z","dependency_job_id":"fd905f79-ee3d-4cd3-963a-d0dc864aae9e","html_url":"https://github.com/taj54/universal-version-bump","commit_stats":null,"previous_names":["taj54/universal-version-bump"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/taj54/universal-version-bump","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taj54%2Funiversal-version-bump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taj54%2Funiversal-version-bump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taj54%2Funiversal-version-bump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taj54%2Funiversal-version-bump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taj54","download_url":"https://codeload.github.com/taj54/universal-version-bump/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taj54%2Funiversal-version-bump/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273382251,"owners_count":25095425,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["automation","ci-cd","composer","github-action","npm","php","python","release","semantic-versioning","universal","version","version-bump","versioning"],"created_at":"2025-09-03T03:12:56.538Z","updated_at":"2025-12-30T21:32:06.759Z","avatar_url":"https://github.com/taj54.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Universal Version Bump\n\n[![GitHub Marketplace](https://img.shields.io/badge/marketplace-universal--version--bump-blue?logo=github)](https://github.com/marketplace/actions/universal-version-bump)\n[![Release](https://img.shields.io/github/v/release/taj54/universal-version-bump?label=version)](https://github.com/taj54/universal-version-bump/releases)\n[![Test](https://github.com/taj54/universal-version-bump/actions/workflows/test.yml/badge.svg)](https://github.com/taj54/universal-version-bump/actions/workflows/test.yml)\n[![License](https://img.shields.io/github/license/taj54/universal-version-bump)](LICENSE)\n[![Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-enforced-blue)](CODE_OF_CONDUCT.md)\n\nA GitHub Action to automatically bump versions for any project that has a version file.\n\nThis action will automatically detect the version file and bump the version according to the `release_type` input. If multiple version files are found, the action will use the one that is most commonly used for the project type.\n\n## How it works\n\nThe action will first try to detect the platform of the project by looking for common version files in the root directory. The following files are supported:\n\n| Platform | Version File                 |\n| -------- | ---------------------------- |\n| Deno     | `deno.json`, `jsr.json`      |\n| Docker   | `Dockerfile`                 |\n| Go       | `go.mod`                     |\n| Node     | `package.json`               |\n| PHP      | `composer.json`              |\n| Python   | `pyproject.toml`, `setup.py` |\n| Rust     | `Cargo.toml`                 |\n\nIf a version file is found, the action will bump the version in that file. If no version file is found, the action will fail.\n\nYou can also explicitly specify the platform to update by using the `target_platform` input. This is useful for monorepos or projects with multiple potential manifest files.\n\n## Usage\n\nTo use this action in your workflow, add the following step:\n\n```yaml\n- name: Bump version\n  uses: taj54/universal-version-bump@v0.14.0\n  with:\n    release_type: 'patch' # patch, minor, or major\n```\n\n### Bumping a version in a specific directory\n\nTo bump a version in a specific directory, use the `target_path` input:\n\n```yaml\n- name: Bump version in my-app\n  uses: taj54/universal-version-bump@v0.14.0\n  with:\n    release_type: 'patch'\n    target_path: 'my-app'\n```\n\n### Explicitly targeting a platform\n\nTo explicitly target a platform, use the `target_platform` input:\n\n```yaml\n- name: Bump Node.js version\n  uses: taj54/universal-version-bump@v0.14.0\n  with:\n    release_type: 'patch'\n    target_platform: 'node' # Explicitly target Node.js\n```\n\n### Custom Updater Usage\n\nFor custom version updates in arbitrary files, use `target_platform: 'custom'` along with the `bump_targets` input. The `bump_targets` input should be a JSON array of objects, where each object specifies the `path` to the file and the `variable` name containing the version.\n\nFor JSON files, the `variable` should be the JSON path to the version field. For other text files, the `variable` will be used in a regular expression to find and replace the version.\n\n```yaml\n- name: Bump custom version\n  uses: taj54/universal-version-bump@v0.14.0\n  with:\n    release_type: 'patch'\n    target_platform: 'custom'\n    bump_targets: |\n      [\n        {\"path\": \"version.txt\", \"variable\": \"APP_VERSION\"},\n        {\"path\": \"config.json\", \"variable\": \"app.version\"}\n      ]\n```\n\n## Inputs\n\n| Name              | Description                                                                                                                                                                                                                                      | Default |\n| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |\n| `release_type`    | Select the version bump type (patch, minor, major)                                                                                                                                                                                               | `patch` |\n| `git_tag`         | Whether to create a Git tag after bump                                                                                                                                                                                                           | `true`  |\n| `target_platform` | Explicitly specify the platform to update (e.g., `node`, `python`). If not provided, the platform will be detected automatically.                                                                                                                | `''`    |\n| `target_path`     | The target path where the version bump should be applied. If not provided, the action will run in the root directory.                                                                                                                            | `.`     |\n| `bump_targets`    | Optional list of version update targets. Provide the `path` and the `variable` to update, the Action will build regex automatically. Example: `[{\"path\": \"setup.py\", \"variable\": \"version\"}, {\"path\": \"Dockerfile\", \"variable\": \"APP_VERSION\"}]` | `[]`    |\n\n## Outputs\n\n| Name          | Description                      |\n| ------------- | -------------------------------- |\n| `new_version` | The new bumped version           |\n| `tag`         | The created Git tag (if enabled) |\n\n## Example Workflow\n\n```yaml\nname: Version Bump\n\npermissions:\n  contents: write\n  pull-requests: write\n\non:\n  workflow_dispatch:\n    inputs:\n      release_type:\n        description: 'Select version bump type'\n        required: true\n        default: 'patch'\n        type: choice\n        options:\n          - patch\n          - minor\n          - major\n\njobs:\n  bump:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v5\n        with:\n          fetch-depth: 0\n\n      - name: Universal Version Bump\n        uses: taj54/universal-version-bump@v0.14.0\n        with:\n          release_type: ${{ inputs.release_type }}\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\n## Development\n\nFor more information on how to develop this action, see the [developer guide](DEVELOPER.md).\n\n## Contributing\n\nContributions are welcome! Please see the [contributing guidelines](CONTRIBUTING.md) for more information.\n\n## Code of Conduct\n\nThis project is governed by the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaj54%2Funiversal-version-bump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaj54%2Funiversal-version-bump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaj54%2Funiversal-version-bump/lists"}