You've already forked go-semantic-release
This provides flexibility of parsing and rendering structured messages with more detail in the changelog and helps extract metadata from the message. The new structure can be used to split a message in multiple blocks (e.g. footer)
68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package shared
|
|
|
|
import (
|
|
"github.com/Masterminds/semver"
|
|
)
|
|
|
|
//ReleaseVersion struct
|
|
type ReleaseVersion struct {
|
|
Last ReleaseVersionEntry `yaml:"last"`
|
|
Next ReleaseVersionEntry `yaml:"next"`
|
|
Branch string `yaml:"branch"`
|
|
Commits map[Release][]AnalyzedCommit `yaml:"commits"`
|
|
}
|
|
|
|
//ReleaseVersionEntry struct
|
|
type ReleaseVersionEntry struct {
|
|
Commit string `yaml:"commit"`
|
|
VersionString string `yaml:"version"`
|
|
Version *semver.Version `yaml:"-"`
|
|
}
|
|
|
|
//GeneratedChangelog struct
|
|
type GeneratedChangelog struct {
|
|
Title string
|
|
Content string
|
|
}
|
|
|
|
//ChangelogTemplateConfig struct
|
|
type ChangelogTemplateConfig struct {
|
|
CommitURL string
|
|
CompareURL string
|
|
Hash string
|
|
Version string
|
|
}
|
|
|
|
//AnalyzedCommit struct
|
|
type AnalyzedCommit struct {
|
|
Commit Commit `yaml:"commit"`
|
|
ParsedMessage string `yaml:"parsedMessage"`
|
|
ParsedBreakingChangeMessage string `yaml:"parsedBreakingChangeMessage"`
|
|
Tag string `yaml:"tag"`
|
|
TagString string `yaml:"tagString"`
|
|
Scope Scope `yaml:"scope"`
|
|
Subject string `yaml:"subject"`
|
|
MessageBlocks map[string][]MessageBlock `yaml:"messageBlocks"`
|
|
IsBreaking bool `yaml:"isBreaking"`
|
|
Print bool `yaml:"print"`
|
|
}
|
|
|
|
// MessageBlock represents a block in the body section of a commit message
|
|
type MessageBlock struct {
|
|
Label string `yaml:"label""`
|
|
Content string `yaml:"content"`
|
|
}
|
|
|
|
//Scope of the commit, like feat, fix,..
|
|
type Scope string
|
|
|
|
//Release types, like major
|
|
type Release string
|
|
|
|
// Commit struct
|
|
type Commit struct {
|
|
Message string `yaml:"message"`
|
|
Author string `yaml:"author"`
|
|
Hash string `yaml:"hash"`
|
|
}
|