CommitFusion helps you create standardized commit messages that follow the Conventional Commits specification. The module enhances the standard by including additional sections:
| π Documentaiton | https://sgkens.github.io/commitfusion | 
|---|
- Conventional Commits Standard
- Customizable Commit Messages with a variaty of options:
- Β» Type(CommitType) eg:feat:
- Β» Scope(Scope in brackets) eg:β¨feat(scope):
- Β» Descrption(Default|Custom).
- Β» Notes(Array of strings)
- Β» FeatureAdditions(Array of strings)
- Β» FeatureNotes(Array of strings)
- Β» BugFixes(Array of strings)
- Β» GitUser(GitUser Account Name)
- Β» GitGroup(if your repository sits in/group/repo.git)
- Β» Footer(Custom footer)
- Β» SemVer(Semantic Version Switch)
 
- Β» 
- Semantic Versioning(Semver) Version Generator
- Changelog Auto updater with Markdown Auto-format
- Gitmoji custom schema (miscellaneous functions cmdlets)
- Unicode Emoticons (miscellaneous cmdlets)
- Enable/Disable Emoticons using Enable-CommitFusionEmojiandDisable-CommitFusionEmoji
- Generate Release Notes with Get-ReleaseNotes.
π»Conventional Commit Templateπ»
  [e] Type(Scope): Description
  [e] Build: Semver(Major|Minor|Patch)
  NOTES [e]:
    [e] Note 1
    [e] Note 2
  [e] BREAKING CHANGES
    [e] Change 1
    [e] Change 2 
  [e] FEATURE ADDTIONS
    [e] Addtion 1
    [e] Addtion 2...[e]
  [e] FEATURE NOTES
    [e] Feature Note 1
    [e] Feature Note 2
  [e] BUG FIXES
    [e] Fix 1
    [e] Fix 2
    
  [e] GitUser @ [e] DateTime
Phellams modules are available from PowerShell Gallery and Chocolatey. you can access the raw assets via Gitlab Generic Assets or nuget repository via Gitlab Packages.
| βββββββββββ | βββββββββββ | βββββββββββ | 
|---|---|---|
| π¦ PSGallery |  | |
| π¦ Chocolatey | 
| βββββββββββ | βββββββββββ | βββββββββββ | 
|---|---|---|
| πΌ Releases/Tags |  |  | 
Using nuget: See the packages page for installation instructions.
For instructions on adding
nugetsources packages from GitLab see Releases artifacts or via the Packages page.
The latest release artifacts can be downloaded from the Generic Assets Artifacts page.
# Clone the repository
git clone https://gitlab.com/phellams/commitfusion.git
cd commitfusion
import-module .\| Command | -- | 
|---|---|
| πΉ New-Commit | Build Commit string base on inputs and return type [string] | 
| πΉ Set-Commit | Applies the commit messages git commit $fusionmessage | 
| πΉ New-CommitFusion | Returns an instance of [CommitFusion]class | 
| πΉ Get-Emoji | Get Emojis filter by nameandtype | 
| πΉ Get-EmojiInex | Return Emoji index as a [psobject]ortable format | 
| πΉ Get-CiSet | Return CiSet from $moduleroot\libs\gitmojis.json | 
| πΉ Get-CiSetFustion | Return CiSetFusion from $moduleroot\libs\CommitFustion.types.json | 
| πΉ Format-FusionMD | Parses the commit string and adds markdown formatting | 
| πΉ Update-ChangeLog | Writes commit message to specified file | 
| πΉ Get-GitAutoversion | Generates semverversion return as[psobject] | 
| πΉ Get-CommitTypes | Returns Commit Types -Type (Gitmojis | 
| πΉ Get-ReleaseNotes | Generates Release Notes Base on branch and catagory type | 
| πΉ Disable-CommitFusionEmojis | Sets EmojisEnabled calls var to false | 
| πΉ Enable-CommitFusionEmojis | Sets EmojisEnabled calls var to true | 
πΉ Retrive list of available commit types.
Get-CommitTypes -Patch
Get-CommitTypes -Minor
Get-CommitTypes -Major
Get-CommitTypes -NoSemverπΉ Creating a new feat commit.
# Create New Commit minimal params
New-Commit -Type Docs 
# Create Commit with Custom Description
New-Commit -Type Docs -Description "Updated module logic"
# Create Commit with Custom Description and Notes
New-Commit -Type Docs -Description "Updated module logic" -Notes "Updated module logic", "updated readme"New-Commit -[t|Type]          <String>
           -[s|Scope]         <String> 
           -[d|Description]   <String> 
           -[n|Notes]         <String[]> 
           -[FeatureAddtions] <String[]> 
           -[FeatureNotes]    <String[]> 
           -[b|BugFixes]      <String[]> 
           -[GitUser]         <String> 
           -[GitGroup]        <String> 
           -[Footer]          <Switch> 
           -[AsString]        <Switch>  # Default
           -[AsObject]        <Switch> πΉ Assuming you have staged files, Use Set-Commit -Confirm to Apply the commit message.
# Apply Commit
New-Commit -Type feat -Notes "note 1","note 2" | Set-Commit -Confirm
# Apply Commit format commit message to markdown and write to changelog file 
New-Commit -Type feat -Notes "note 1","note 2" | Format-FusionMD | Update-Changelog -logfile path\to\file | Set-Commit -ConfirmπΉ Generate Semantic Version Number (Semver) version base on you commit history
# generate SemVer Version returns psobject
Get-GitAutoVersion | select version
# only string
(Get-GitAutoVersion).Version
# in string
$version = "v_$((Get-GitAutoVersion).Version)"If you would like to change the default
types,description, andemotocons: Types.jsonfile are found at$moduleroot/libs/commitfusion.types.json\
πΉExample :
{
    "templateName": "default",
    "templateDescription": "commitfusion-ciset",
    "templateVersion": "1.0.0",
    "ciset": [
        {
            "Type": "changes",
            "emoji": "π₯",
            "description": "Introduce breaking changes.",
            "name": "boom",
            "semver": "major",
            "cfa": [
                {
                    "action": ""
                }
            ]
        },
        ...
    ]
}     π‘ Task List
- π Add support for importing custom commits types from a specified json file.
-  π  Implement SimpleSpectreWrapperto parse and format psobject to spectre table.
-  π  Add support for no-emojis. only ascii.
Feel free to contribute!  Fork the repo and submit a merge request with your improvements.  Or, open an issue with the enhancement tag to discuss your ideas.
- Fork the Project from git clone https://gitlab.com/phellams/commitfusion.git
- Create your Feature Branch check out the branch dev git switch dev.- git switch -c feature/AmazingFeature
- or
- git checkout -b feature/AmazingFeature
 
- Commit your Changes git commit -m 'Add some AmazingFeature'
- Push to the Branch git push origin feature/AmazingFeature
- Open a Merge Request
This project is licensed under the terms of the MIT License
