Giter Club home page Giter Club logo

sv4git's Introduction

sv4git

A command line tool (CLI) to validate commit messages, bump version, create tags and generate changelogs!

Release Go Reference GitHub stars GitHub release (latest by date) GitHub all releases Software License GitHub Actions Status Go Report Card Conventional Commits

Getting Started

Pre Requirements

  • Git 2.17+

Installing

  • Download the latest release and add the binary to your path.
  • Optional: Set SV4GIT_HOME to define user configs. Check the Config topic for more information.

If you want to install from source using go install, just run:

# keep in mind that with this, it will compile from source and won't show the version on cli -h.
go install github.com/bvieira/sv4git/v2/cmd/git-sv@latest

# if you want to add the version on the binary, run this command instead.
SV4GIT_VERSION=$(go list -f '{{ .Version }}' -m github.com/bvieira/sv4git/v2@latest | sed 's/v//') && go install --ldflags "-X main.Version=$SV4GIT_VERSION" github.com/bvieira/sv4git/v2/cmd/git-sv@v$SV4GIT_VERSION

Config

YAML

There are 3 config levels when using sv4git: default, user, repository. All of them are merged considering the follow priority: repository > user > default.

To see the current config, run:

git sv cfg show
Configuration Types
Default

To check the default configuration, run:

git sv cfg default
User

For user config, it is necessary to define the SV4GIT_HOME environment variable, eg.:

SV4GIT_HOME=/home/myuser/.sv4git # myuser is just an example.

And create a config.yml file inside it, eg.:

.sv4git
└── config.yml
Repository

Create a .sv4git.yml file on the root of your repository, eg.: .sv4git.yml.

Configuration format
version: "1.1" #config version

versioning: # versioning bump
    update-major: [] # Commit types used to bump major.
    update-minor: [feat] # Commit types used to bump minor.
    update-patch: [build, ci, chore, fix, perf, refactor, test] # Commit types used to bump patch.
    # When type is not present on update rules and is unknown (not mapped on commit message types);
    # if ignore-unknown=false bump patch, if ignore-unknown=true do not bump version
    ignore-unknown: false

tag:
    pattern: '%d.%d.%d' # Pattern used to create git tag.
    filter: '' # Enables you to filter for considerable tags using git pattern syntax

release-notes:
    # Deprecated!!! please use 'sections' instead!
    # Headers names for release notes markdown. To disable a section just remove the header 
    # line. It's possible to add other commit types, the release note will be created 
    # respecting the following order: feat, fix, refactor, perf, test, build, ci, chore, docs, style, breaking-change.
    headers: 
        breaking-change: Breaking Changes
        feat: Features
        fix: Bug Fixes
    
    sections: # Array with each section of release note. Check template section for more information.
        - name: Features # Name used on section.
          section-type: commits # Type of the section, supported types: commits, breaking-changes.
          commit-types: [feat] # Commit types for commit section-type, one commit type cannot be in more than one section.
        - name: Bug Fixes
          section-type: commits
          commit-types: [fix]
        - name: Breaking Changes
          section-type: breaking-changes

branches: # Git branches config.
    prefix: ([a-z]+\/)? # Prefix used on branch name, it should be a regex group.
    suffix: (-.*)? # Suffix used on branch name, it should be a regex group.
    disable-issue: false # Set true if there is no need to recover issue id from branch name.
    skip: [master, main, developer] # List of branch names ignored on commit message validation.
    skip-detached: false # Set true if a detached branch should be ignored on commit message validation.

commit-message:
    types: [build, ci, chore, docs, feat, fix, perf, refactor, revert, style, test] # Supported commit types.
    header-selector: '' # You can put in a regex here to select only a certain part of the commit message. Please define a regex group 'header'.
    scope:
        # Define supported scopes, if blank, scope will not be validated, if not, only scope listed will be valid.
        # Don't forget to add "" on your list if you need to define scopes and keep it optional.
        values: []
    footer:
        issue: # Use "issue: {}" if you wish to disable issue footer.
            key: jira # Name used to define an issue on footer metadata.
            key-synonyms: [Jira, JIRA] # Supported variations for footer metadata.
            use-hash: false # If false, use :<space> separator. If true, use <space># separator.
            add-value-prefix: '' # Add a prefix to issue value.
    issue:
        regex: '[A-Z]+-[0-9]+' # Regex for issue id.

Templates

sv4git uses go templates to format the output for release-notes and changelog, to see how the default template is configured check template directory. On v2.7.0+, its possible to overwrite the default configuration by adding .sv4git/templates on your repository. The cli expects that at least 2 files exists on your directory: changelog-md.tpl and releasenotes-md.tpl.

.sv4git
└── templates
    ├── changelog-md.tpl
    └── releasenotes-md.tpl

Everything inside .sv4git/templates will be loaded, so it's possible to add more files to be used as needed.

Variables

To execute the template the releasenotes-md.tpl will receive a single ReleaseNote and changelog-md.tpl will receive a list of ReleaseNote as variables.

Each ReleaseNoteSection will be configured according with release-notes.section from config file. The order for each section will be maintained and the SectionType is defined according with section-type attribute as described on the table below.

section-type ReleaseNoteSection
commits ReleaseNoteCommitsSection
breaking-changes ReleaseNoteBreakingChangeSection

⚠️ currently only commits and breaking-changes are supported as section-types, using a different value for this field will make the section to be removed from the template variables.

Check below the variables available:

ReleaseNote
  Release     string // 'v' followed by version if present, if not tag will be used instead.
  Tag         string // Current tag, if available.
  Version     *Version // Version from tag or next version according with semver.
  Date        time.Time
  Sections    []ReleaseNoteSection // ReleaseNoteCommitsSection or ReleaseNoteBreakingChangeSection
  AuthorNames []string // Author names recovered from commit message (user.name from git)

Version
  Major      int
  Minor      int
  Patch      int
  Prerelease string
  Metadata   string
  Original   string

ReleaseNoteCommitsSection // SectionType == commits
  SectionType      string
  SectionName      string
  Types            []string
  Items            []GitCommitLog
  HasMultipleTypes bool

ReleaseNoteBreakingChangeSection // SectionType == breaking-changes
  SectionType string
  SectionName string
  Messages    []string

GitCommitLog
  Date       string
  Timestamp  int
  AuthorName string
  Hash       string
  Message    CommitMessage

CommitMessage
  Type             string
  Scope            string
  Description      string
  Body             string
  IsBreakingChange bool
  Metadata         map[string]string
Functions

Beside the go template functions, the folowing functions are availiable to use in the templates. Check formatter_functions.go to see the functions implementation.

timefmt

Usage: timefmt time "2006-01-02"

Receive a time.Time and a layout string and returns a textual representation of the time according with the layout provided. Check https://pkg.go.dev/time#Time.Format for more information.

getsection

Usage: getsection sections "Features"

Receive a list of ReleaseNoteSection and a Section name and returns a section with the provided name. If no section is found, it will return nil.

Running

Run git-sv to get the list of available parameters:

git-sv

Run as git command

If git-sv is configured on your path, you can use it like a git command:

git sv
git sv current-version
git sv next-version

Usage

Use --help or -h to get usage information, don't forget that some commands have unique options too:

# sv help
git-sv -h

# sv release-notes command help
git-sv rn -h
Available commands
Variable description has options or subcommands
config, cfg Show config information. ✔️
current-version, cv Get last released version from git.
next-version, nv Generate the next version based on git commit messages.
commit-log, cl List all commit logs according to range as jsons. ✔️
commit-notes, cn Generate a commit notes according to range. ✔️
release-notes, rn Generate release notes. ✔️
changelog, cgl Generate changelog. ✔️
tag, tg Generate tag with version based on git commit messages.
commit, cmt Execute git commit with convetional commit message helper. ✔️
validate-commit-message, vcm Use as prepare-commit-message hook to validate commit message. ✔️
help, h Shows a list of commands or help for one command.
Use range

Commands like commit-log and commit-notes has a range option. Supported range types are: tag, date and hash.

By default, it's used --date=short at git log, all dates returned from it will be in YYYY-MM-DD format.

Range tag will use git for-each-ref refs/tags to get the last tag available if start is empty, the others types won't use the existing tags. It's recommended to always use a start limit in a old repository with a lot of commits. This behavior was maintained to not break the retrocompatibility.

Range date use git log --since and --until. It's possible to use all supported formats from git log. If end is in YYYY-MM-DD format, sv will add a day on git log command to make the end date inclusive.

Range tag and hash are used on git log revision range. If end is empty, HEAD will be used instead.

# get commit log as json using a inclusive range
git-sv commit-log --range hash --start 7ea9306~1 --end c444318

# return all commits after last tag
git-sv commit-log --range tag
Use validate-commit-message as prepare-commit-msg hook

Configure your .git/hooks/prepare-commit-msg:

#!/bin/sh

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3

git sv vcm --path "$(pwd)" --file "$COMMIT_MSG_FILE" --source "$COMMIT_SOURCE"

Tip: you can configure a directory as your global git templates using the command below:

git config --global init.templatedir '<YOUR TEMPLATE DIR>'

Check git config docs for more information!

Development

Makefile

Run make to get the list of available actions:

make

Make configs

Variable description
BUILDOS Build OS.
BUILDARCH Build arch.
ECHOFLAGS Flags used on echo.
BUILDENVS Var envs used on build.
BUILDFLAGS Flags used on build.
Parameters description
args Parameters that will be used on run.
#variables
BUILDOS="linux" BUILDARCH="amd64" make build

#parameters
make run args="-h"

Build

make build

The binary will be created on bin/$BUILDOS_$BUILDARCH/git-sv.

Tests

make test

Run

#without args
make run

#with args
make run args="-h"

sv4git's People

Contributors

bvieira avatar dependabot[bot] avatar hypervtechnics avatar rbuckland-varmour avatar sheldonhull avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sv4git's Issues

[Feature Request] Recognise Jira tickets in header

Hi @bvieira

Would it be possible to apply the same parsing used for identifying Jira tickets in the footer, to the header? Lots of the commit header messages on our project are prefixed with the Jira ticket and would like to create links with the existing set up.

For example, fix(<optional_scope>): [JIRA-1234] fixed an issue with the thing

Thanks,
Pete

Templating for changelog generation

Hi,

how feasible would be the usage of go templates to generate a changelog? This would also solve #24.

This is partly a question (as I can understand if this is a very complex change), partly a feature request. I am using your product and really like it 👍🏼 Thank you for this!

Publishing pre-releases

Hey
I thinking about migrating to sv4git, this looks very cool 🚀
I've used Semmantic Release in the past, but unfortunately it is very slow, due to the nature of node package restoration.

We've used a flow where we have a develop and a main branch. The commits merged into the develop branch generates beta releases like v1.0.3-beta.2.
After testing the develop branch is merged into the main branch which then generates the appropriate v1.0.3 release.

See Publishing pre-releases for more information.

Is it somehow possible to configure such a scenario with sv4git?

[Feature Request] Support environment variables in template

Hi,
sv4git is a great tool, thank you

As I see template does not support environment variables. It is why I cannot to build some links in changelog, for example a link to commit in GitHub or GitLab because I do not have a name of organization, project name and so on.

I found that this can be solved very easily.
It would be enough here to add one line "getenv": os.Getenv to have something like this

	templateFNs := map[string]interface{}{
		"timefmt":    timeFormat,
		"getsection": getSection,
		"getenv":     os.Getenv,
	}

Usage with an empty | null `commit-message.issue.key`

Hello,

We are trying to use AngularJS commit format for our different projets and will recommand the use of sv4git. To boost adhesion with the new commit format we want to let developers chose the approach to write the commit message.

Some will use your tool, some will use commitizen and others will use git commands (e.g. git commit -m "subject" - m "body" -m "JIRA-123", git amend, git commit template or even Github PR squash and merge).

Because we don't want to force the sv4git syntax to developers not using it, we configured it with an empty commit-message.issue.key but the prompt display and commit message is not as expected (see colon :).

The CLI prompt:

❯ git sv cmt
type: chore
scope: test
✔ subject: test
body (leave empty to finish): 
: TEST-1
has breaking changes? [y/n]: n

...and the resulting commit message:

chore(test): test

: TEST-1

Running commands after install in Ubuntu results in an error.

when I run commands such as git sv cfg show or git sv cfg default I get the following error:

/home/myuser/bin/git-sv: 1: Syntax error: "(" unexpected

Running git-sv results in the following error:

bash: /home/descere/bin/git-sv: cannot execute binary file: Exec format error

I'm not sure that it matters, but I have run these commands both with a .sv4git.yml file in my repository and without it. Both get the same result

OS: Ubuntu 20.04

git sv vcm seems not working with a rebase

Hello,

First, thank you for this nice new version (2.0)

It seems git sv vcm doesn't work when you're doing a rebase :

❯ git rebase --continue            
invalid commit message, error: message should be valid according with conventional commits
# Ceci est la combinaison de 2 commits.
# Ceci est le premier message de validation :

feat(media): use new media in export

# Le message de validation 2 sera ignoré :

# feat: wip

# Veuillez saisir le message de validation pour vos modifications. Les lignes
# commençant par '#' seront ignorées, et un message vide abandonne la validation.
#
# rebasage interactif en cours ; sur 33a09c92
# Dernières commandes effectuées (2 commandes effectuées) :
#    reword fb590ffb feat: wip
#    fixup cbf837b7 feat: wip
# Prochaines commandes à effectuer (2 commandes restantes) :
#    fixup cbf837b7 feat: wip
#    fixup 5f4b0734 feat: wip
# Vous êtes en train de rebaser la branche 'my-branch' sur '33a09c92'.
#
# Modifications qui seront validées :
#	modifié :         src/Export/x.php
#	supprimé :        src/Export/y.php
#
# Fichiers non suivis:
#	bouh

Executable installed with go install show "version source" with -v option

I installed and updated the tool with go install github.com/bvieira/sv4git/v2/cmd/git-sv@latest
which I prefer because I can update the tool more easily than downloading it from the browser and placing manuelly in the bin directory.

But if I launch git sv -v the tool outputs the default sv version source when no version is provided.

The binary downloaded from github doesn't have this problem and outputs correctly the version.

Sometimes the changelog generated is very strange

Hello,

Try to generate the changelog of this repository https://github.com/syrm/ValheimTwitch
I'm using git sv cgl

The result is strange, as you can see :

# Changelog

## v1.3.0 (2021-03-27)

### Features

- Viewer can change weather (73efa23)
- Start hord event (74d07ef)
- Add should redemptions skip request queue option (e018e4a)

---

## v1.2.0 (2021-03-26)

### Features

- Enable/Disable reward when game quit (2eeb738)
- Enable/Disable reward when game state change (b8184ea)
- Follow my channel to get rid of intro message (f3d7fe3)
- Add reward form (454be83)

---

## v1.1.0 (2021-03-25)

### Features

- Persistant rewards settings (595d749)
- Rewards configuration (1669852)

---

## v1.0.0 (2021-03-24)

---

## v1.4.2

---

## v1.5.0

---

## v1.5.1

### Features

- Add shortcuts (#17) (63f7cf4)
- Update version notification (#12) (43824a3)
- Show Hugin intro only once per game session (#11) (b20cab6)
- Spawn boss (not tameable) (#10) (9808107)
- Spawn Tamed creature which takes the name of the viewer (#9) (a25bc21)
- Player heal and puke (#8) (58ad18c)
- Switch to edit action right after creation (7a782ac)
- Disable reward at creation (ac70130)
- Viewer can change weather (73efa23)
- Start hord event (74d07ef)
- Add should redemptions skip request queue option (e018e4a)
- Enable/Disable reward when game quit (2eeb738)
- Enable/Disable reward when game state change (b8184ea)
- Follow my channel to get rid of intro message (f3d7fe3)
- Add reward form (454be83)
- Persistant rewards settings (595d749)
- Rewards configuration (1669852)
- Set reward action (c0b9eb0)
- Reward settings panel base (9ad4774)
- Refresh rewards list (8778941)
- New GUI (db2a277)
- New GUI (POC) (e2c085a)
- Embeded GUI (POC) (7cb433d)
- Spawn board hord (06e7543)
- Spawn Troll (7f9bbe4)
- Print HUD messages (top-left/center) (a72caf3)
- Spawn Hugin/Munin (0fd9827)
- Run abstract action (a736363)
- Save reward/action in user prefs (9b3094d)
- CustomDropdown (988a062)
- CustomDropdown (742950c)
- Rewards grid (54b0f2b)
- VerticalScrollView (6e83ac7)
- Twitch refresh token (8d2cb1a)
- Twitch login (71bc753)
- MainGui + MainButton (poc) (a15e517)
- Reawrds grid (poc) (6b569fa)
- ScollView (311b9ee)
- Settings panel container (e120b73)
- Embedded assemblies (1d62abf)
- Get rewards list (7b76af3)
- Better login button (00608f9)
- Twitch login (226646d)
- Get twitch user token (7e92bec)
- OnAuthCode event (6fb0ff6)
- HTML response (ae479db)
- Get Twitch auth code (da4f57d)
- Login button image (c906618)
- Twitch login button (draft) (9d682a8)
- PubSub auto reconnect (812bd70)
- JSON.NET Serialization (a7d2102)
- PubSub POC (8a44240)
- Startup message (d357d8b)
- Get Twitch user as TwitchUser type (6fdc5fc)
- Get Twitch user (7844113)
- Base config (d1248e3)

### Bug Fixes

- Tamed creature faction (#23) (ff98724)
- Reward form setup (#22) (f11d403)
- Only tamed creature is put into player faction (#21) (b52fa84)
- Only tamed creature is put into player faction (#18) (33eef56)
- Undefined tamed property (#14) (ac26ec8)
- Check channel points availability (431d27c)
- Clear add new reward form before open (9ec8ac6)
- Deletes a reward when it no longer exists (ec795b1)
- Reward form toggle not taken into account (825697e)

---

Some tags are empty, and the order of tag is wrong.

Closing parentheses appear in the wrong places

Both git sv release-notes and git sv changelog render closing parentheses in the wrong places. I believe this bug shows up when the jira ticket is set. However, we're using the default config for issue:

    issue:
        regex: '[A-Z]+-[0-9]+'

version: v2.8.1

Example:

git sv release-notes
## v0.8.0 (2023-01-04)

### Features

- **processor-worker:** add retry policies (#1027) (7362797e)
- **counters-worker:** upgrade aws sdk (#1025) (f0e0908a)
- **counters-worker:** change buffer length (#1021) (4fa49161)

### Bug Fixes

) **query-gateway:** update schema decoding (#1016) (ed06edd1) (TICKET-982

### Misc

) **all:** remove v1 files (#1019) (fc27e4cb) (TICKET-1128

Allow to release major version tag

To maintain an sv4git GitHub Action, I would like to create a git tag for the major version in addition to the full semantic version one, overwriting the existing one if any.
However, when I add the major version tag manually, subsequent release versions always start counting at the last major version tag, breaking version increments permanently, unless I remove the major version tag again.

Example:

  1. Release for feat commit: New version is 0.1.0, tags v0.1.0 and v0 were created.
  2. Release for feat commit: New version is 0.1.0 again!

Changelog generation should be able to generate last change untagged

Hello,

Sometimes you want to generate the whole changelog until the last commit even if the commit is untagged.
So you can take this changelog add it to your repo, commit it, and tag the commit with the proper tag.

Exemple https://github.com/syrm/test
Generate changelog produce right now :

# Changelog

## v3.0.0 (2021-04-10)

### Bug Fixes

- add 7 (573711f)
- add 6 (9422615)

---

## v2.3.1 (2021-04-10)

### Features

- add 5 (a28a0d8)

### Bug Fixes

- add 4 (c4d6748)

---

## v2.3.0 (2021-04-10)

### Bug Fixes

- add 2 (21c0d55)

---

## v1.0.0 (2021-04-10)

---

I think it would be cool if you add an option to be able to generate the changelog of the last commit too and produce something like this :

# Changelog

## vX.X.X (2021-04-10)

### Features

- add 9 (0e02b6f)
- add 8 (31cce6f)

## v3.0.0 (2021-04-10)

### Bug Fixes

- add 7 (573711f)
- add 6 (9422615)

---

## v2.3.1 (2021-04-10)

### Features

- add 5 (a28a0d8)

### Bug Fixes

- add 4 (c4d6748)

---

## v2.3.0 (2021-04-10)

### Bug Fixes

- add 2 (21c0d55)

---

## v1.0.0 (2021-04-10)

---

With a changelog like that, it will be easy to only change X.X.X to v3.1.0, add this changelog into repository, commit it, and tag it v3.1.0

What do think about this ?

Request: changelog from a commit/date ?

Hello,

Could you add a feature to generate a changelog from a commit or a date ?
We are doing continuous delivery, we don't tag each commit on master.

But we want to be able to sumup the modifications during a period.

[Feature Request] Allow regex to select part of commit message for conventional parsing

Hi,

sorry to bother you again. I encountered a scenario where our SCM system prepends the PR merge commits with Merged PR xxx: <the original title>. It would be nice to have some kind of parsing preprocessor to select only a certain part from a commit message to parse for conventional commit format.

In my case this would look like this:

(Merged PR \d+): (?P<message>.*)

grafik

By default this could be (?P<message>.*) to just select the whole thing. Or this step could be completly skipped if the pattern is empty.

[Question/Bug] Incomplete changelog

Hi,

I am currently testing your program. Thanks for coding and providing it. It looks very promising. I encountered a situation where the generated changelog differs from what I expected it to be. I'd rather not call it a bug report, because I am not sure whether I just configured something wrong. Can someone help me with this?

user@supermachine01:~/projects/sv4git-test$ git log
commit 1d3b726e0376d8674a9008fe51eed82bf97a1b12 (HEAD -> master, tag: 1.1.0, origin/master)
Author: hypervtechnics <[email protected]>
Date:   Mon Jul 26 23:05:53 2021 +0200

    build: add drone ci

commit 7b7dd31ab163ea332e162ba3a03a86a5df5a07f3
Author: hypervtechnics <[email protected]>
Date:   Mon Jul 26 23:01:55 2021 +0200

    fix: Fix heading

commit a23806650a4c67b6513516498e06c7ff6776f25f
Author: hypervtechnics <[email protected]>
Date:   Mon Jul 26 22:58:04 2021 +0200

    feat: Add another line

commit 2068851cc1183457c00e6fda6f2df92e9f49214a
Author: hypervtechnics <[email protected]>
Date:   Mon Jul 26 22:44:15 2021 +0200

    Add build to headers

commit 247c5fa0920cf8fb635e1ee324596515765cbbe5 (tag: 1.0.0)
Author: hypervtechnics <[email protected]>
Date:   Sun Jul 4 18:28:51 2021 +0200

    feat!: hm

commit 480ab832801aec3201c1ed95c4b655f930efb0e9 (tag: 0.1.0)
Author: hypervtechnics <[email protected]>
Date:   Sun Jul 4 18:15:27 2021 +0200

    feat(headline): Introduced new headline

commit 885d53f12ad924cfff2f3f819836176d0d059f25
Author: hypervtechnics <[email protected]>
Date:   Sun Jul 4 18:14:10 2021 +0200

    build: Add sv4git

commit 7c320f006a6f578659d0b917de33311285ffc6d3
Author: hypervtechnics <[email protected]>
Date:   Sun Jul 4 18:09:14 2021 +0200

    docs(readme): Fix linter error with title

commit 69c44c024b2ae88791bf8a3ea82acd451d667dc5
Author: hypervtechnics <[email protected]>
Date:   Sun Jul 4 18:08:37 2021 +0200

    Initial commit
# .sv4git.yml
version: '1.0'
versioning:
    update-major: []
    update-minor:
        - feat
    update-patch:
        - build
        - ci
        - chore
        - docs
        - fix
        - perf
        - refactor
        - style
        - test
    ignore-unknown: false
tag:
    pattern: '%d.%d.%d'
release-notes:
    headers:
        breaking-change: Breaking Changes
        feat: Features
        fix: Bug Fixes
        build: Build
branches:
    prefix: ([a-z]+\/)?
    suffix: (-.*)?
    disable-issue: false
    skip:
        - master
        - main
        - developer
    skip-detached: false
commit-message:
    types:
        - build
        - ci
        - chore
        - docs
        - feat
        - fix
        - perf
        - refactor
        - revert
        - style
        - test
    scope:
        values: []
    footer:
        issue: {}
    issue:
        regex: '[A-Z]+-[0-9]+'

The repository is pushed to a private repository and has three tags on it.

user@supermachine01:~/projects/sv4git-test$ git sv cgl
# Changelog

## v1.1.0 (2021-07-26)

### Features

- Add another line (a238066)

### Bug Fixes

- Fix heading (7b7dd31)

---

## v1.0.0 (2021-07-04)

### Features

- hm (247c5fa)

---

## v0.1.0 (2021-07-04)

### Features

- **headline:** Introduced new headline (480ab83)

---

Here I expected the Build section to be included as part of some releases.

Did I misunderstand/misconfigure something?

Default config can't be overridden on MacOS

As the title say the default configuration can't be overridden on MacOS

  • Tool version: 2.1.1_darwin_amd64
  • OS version: MacOS Catalina 10.15.7
  • Shell: either /bin/bash or /bin/zsh
    • /bin/bash version: GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
    • /bin/zsh version: zsh 5.7.1 (x86_64-apple-darwin19.0)

git-sv release-notes fails to find tag in pipeline

Hello, loving the tool, but running into an issue with the release-notes tool that I cannot figure out.

In my pipeline:

$ git fetch --tags
$ git tag
1.0.0
1.1.0
1.1.1
1.1.2
$ git sv release-notes -t "$CI_COMMIT_TAG"
ERROR: error listing tags, message: tag: 1.1.2 not found

Locally it works as expected, so it's likely an issue somewhere in my pipeline configuration, but the error message isn't giving me many clues. Any idea why sv4git can't seem to find the tag even though it is being listed as an output of git tag?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.