{"id":15749671,"url":"https://github.com/bycedric/semantic-release-git-branches","last_synced_at":"2026-03-09T00:31:57.400Z","repository":{"id":32480835,"uuid":"135040266","full_name":"byCedric/semantic-release-git-branches","owner":"byCedric","description":"A fork of @semantic-release/git that uses a more gitflow approach for releases","archived":false,"fork":false,"pushed_at":"2023-01-03T20:23:31.000Z","size":2081,"stargazers_count":3,"open_issues_count":27,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-05T21:17:01.376Z","etag":null,"topics":["git-flow","semantic-release"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/byCedric.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-27T11:29:53.000Z","updated_at":"2022-06-29T15:05:49.000Z","dependencies_parsed_at":"2023-01-14T21:21:14.387Z","dependency_job_id":null,"html_url":"https://github.com/byCedric/semantic-release-git-branches","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byCedric%2Fsemantic-release-git-branches","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byCedric%2Fsemantic-release-git-branches/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byCedric%2Fsemantic-release-git-branches/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byCedric%2Fsemantic-release-git-branches/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byCedric","download_url":"https://codeload.github.com/byCedric/semantic-release-git-branches/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252577027,"owners_count":21770721,"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":["git-flow","semantic-release"],"created_at":"2024-10-04T06:04:20.160Z","updated_at":"2026-03-09T00:31:57.360Z","avatar_url":"https://github.com/byCedric.png","language":"JavaScript","readme":"# Git Branches - Semantic Release\n\n[![Latest Release](https://img.shields.io/github/release/byCedric/semantic-release-git-branches/all.svg?style=flat-square)](https://github.com/byCedric/semantic-release-git-branches/releases)\n[![Build Status](https://img.shields.io/travis/com/byCedric/semantic-release-git-branches/master.svg?style=flat-square)](https://travis-ci.com/byCedric/semantic-release-git-branches)\n[![Codecov coverage](https://img.shields.io/codecov/c/github/byCedric/semantic-release-git-branches.svg?style=flat-square)](https://codecov.io/gh/byCedric/semantic-release-git-branches)\n[![Code Climate grade](https://img.shields.io/codeclimate/maintainability/byCedric/semantic-release-git-branches.svg?style=flat-square)](https://codeclimate.com/github/byCedric/semantic-release-git-branches)\n\nA fork of [`@semantic-release/git`](https://github.com/semantic-release/git) which uses the [git flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) approach for releases.\n\n## verifyConditions\n\nVerify the access to the remote Git repository, the commit `message` format and the `assets` option configuration.\n\n## prepare\n\nCreate a release commit, including configurable files.\n\n## Configuration\n\n## Environment variables\n\n| Variable              | Description                                                                                                                                                              | Default                              |\n|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|\n| `GIT_AUTHOR_NAME`     | The author name associated with the release commit. See [Git environment variables](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#_committing).     | @semantic-release-bot.               |\n| `GIT_AUTHOR_EMAIL`    | The author email associated with the release commit. See [Git environment variables](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#_committing).    | @semantic-release-bot email address. |\n| `GIT_COMMITTER_NAME`  | The committer name associated with the release commit. See [Git environment variables](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#_committing).  | @semantic-release-bot.               |\n| `GIT_COMMITTER_EMAIL` | The committer email associated with the release commit. See [Git environment variables](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables#_committing). | @semantic-release-bot email address. |\n\n### Options\n\n| Options        | Description                                                    | Default                                                                        |\n| -------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------|\n| `message`      | The message for the release commit. See [message](#message).   | `chore: create new release ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}`     |\n| `assets`       | Files to include in the release commit. See [assets](#assets). | `['CHANGELOG.md', 'package.json', 'package-lock.json', 'npm-shrinkwrap.json']` |\n| `branchName`   | The name of the release branch.                                | `release/${nextRelease.version}`                                               |\n| `branchPush`   | If the release branch should be pushed to remote.              | `false`                                                                        |\n| `branchMerges` | All branches that will receive a release branch merge.         | `[branch]`                                                                     |\n\n#### `message`\n\nThe message for the release commit is generated with [Lodash template](https://lodash.com/docs#template). The following variables are available:\n\n| Parameter     | Description                                                                         |\n|---------------|-------------------------------------------------------------------------------------|\n| `branch`      | The branch from which the release is done.                                          |\n| `lastRelease` | `Object` with `version`, `gitTag` and `gitHead` of the last release.                |\n| `nextRelease` | `Object` with `version`, `gitTag`, `gitHead` and `notes` of the release being done. |\n\nIt is recommended to include `[skip ci]` in the commit message to not trigger a new build.\n**Note**: Some CI service support the `[skip ci]` keyword only in the subject of the message.\n\n##### `message` examples\n\nThe `message` `Release ${nextRelease.version} - ${new Date().toLocaleDateString('en-US', {year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' })} [skip ci]\\n\\n${nextRelease.notes}` will generate the commit message:\n\n\u003e Release v1.0.0 - Oct. 21, 2015 1:24 AM \\[skip ci\\]\u003cbr\u003e\u003cbr\u003e## 1.0.0\u003cbr\u003e\u003cbr\u003e### Features\u003cbr\u003e* Generate 1.21 gigawatts of electricity\u003cbr\u003e...\n\n#### `assets`\n\nCan be an `Array` or a single entry. Each entry can be either:\n- a [glob](https://github.com/micromatch/micromatch#matching-features)\n- or an `Object` with a `path` property containing a [glob](https://github.com/micromatch/micromatch#matching-features).\n\nEach entry in the `assets` `Array` is globbed individually. A [glob](https://github.com/micromatch/micromatch#matching-features) can be a `String` (`\"dist/**/*.js\"` or `\"dist/mylib.js\"`) or an `Array` of `String`s that will be globbed together (`[\"dist/**\", \"!**/*.css\"]`).\n\nIf a directory is configured, all the files under this directory and its children will be included.\n\nIf a file has a match in `.gitignore` it will always be excluded.\n\n##### `assets` examples\n\n`'dist/*.js'`: include all `js` files in the `dist` directory, but not in its sub-directories.\n\n`'dist/**/*.js'`: include all `js` files in the `dist` directory and its sub-directories.\n\n`[['dist', '!**/*.css']]`: include all files in the `dist` directory and its sub-directories excluding the `css` files.\n\n`[['dist', '!**/*.css'], 'package.json']`: include `package.json` and all files in the `dist` directory and its sub-directories excluding the `css` files.\n\n`[['dist/**/*.{js,css}', '!**/*.min.*']]`: include all `js` and `css` files in the `dist` directory and its sub-directories excluding the minified version.\n\n### Usage\n\nOptions can be set within the plugin definition in the Semantic-release configuration file:\n\n```json\n{\n  \"release\": {\n    \"prepare\": [\n      \"@semantic-release/npm\",\n      {\n        \"path\": \"semantic-release-git-branches\",\n        \"assets\": [\"package.json\", \"dist/**/*.{js|css}\", \"docs\"],\n        \"message\": \"chore(release): ${nextRelease.version} [skip ci]\\n\\n${nextRelease.notes}\"\n      }\n    ],\n    \"publish\": [\"@semantic-release/github\"]\n  }\n}\n```\n\nWhen using with the [changelog](https://github.com/semantic-release/changelog) or [npm](https://github.com/semantic-release/npm) plugins:\n- The [changelog](https://github.com/semantic-release/changelog) plugin must be called first in order to update the changelog file so the [gitflow](https://github.com/bycedric/semantic-release-git-branches) and [npm](https://github.com/semantic-release/npm) plugin can include it in the release.\n- The [npm](https://github.com/semantic-release/npm) plugin must be called second in order to update the `package.json` file so the [gitflow](https://github.com/bycedric/semantic-release-git-branches) plugin can include it in the release commit.\n\nTo use with the [changelog](https://github.com/semantic-release/changelog) and [npm](https://github.com/semantic-release/npm) plugins:\n\n```json\n{\n  \"release\": {\n    \"verifyConditions\": [\"@semantic-release/changelog\", \"@semantic-release/npm\", \"semantic-release-git-branches\"],\n    \"prepare\": [\"@semantic-release/changelog\", \"@semantic-release/npm\", \"semantic-release-git-branches\"]\n  }\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbycedric%2Fsemantic-release-git-branches","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbycedric%2Fsemantic-release-git-branches","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbycedric%2Fsemantic-release-git-branches/lists"}