name: "update-tags-action" description: "Easily create/update one or more tags in a GitHub repository." author: "jimeh" branding: icon: "tag" color: "blue" inputs: tags: description: >- List/CSV of tags to create/update. Supports per-tag ref and annotation overrides using the format 'tag:ref:annotation'. Use 'tag::annotation' to specify an annotation with the default ref. required: false derive_from: description: >- Semver version string to derive tags from (e.g., 'v1.2.3'). When provided, generates tags using `derive_from_template` input. Default template will produce major and minor tags. (e.g., 'v1', 'v1.2') required: false derive_from_template: description: >- Handlebars template for deriving tags from the `derive_from` input. Uses the same format as the `tags` input, and supports the following handlebars placeholders: `{{prefix}}`, `{{major}}`, `{{minor}}`, `{{patch}}`, `{{prerelease}}`, `{{build}}`, `{{version}}`. required: false default: "{{prefix}}{{major}},{{prefix}}{{major}}.{{minor}}" ref: description: "The SHA or ref to tag. Defaults to SHA of current commit." required: false default: "${{ github.sha }}" when_exists: description: >- What to do if the tag already exists. Must be one of 'update', 'skip', or 'fail'. required: false default: "update" annotation: description: >- Optional default annotation message for tags. If provided, creates annotated tags. If empty, creates lightweight tags. Can be overridden per-tag using the 'tag:ref:annotation' syntax in the tags input. required: false default: "" dry_run: description: >- If true, logs planned operations without executing them. required: false default: "false" github_token: description: "The GitHub token to use for authentication." required: false default: ${{ github.token }} outputs: tags: description: "List of tags that were created/updated." created: description: "List of tags that were created." updated: description: "List of tags that were updated." skipped: description: "List of tags that were skipped." runs: using: node24 main: dist/index.js