github.com/git-chglog/git-chglog@v0.15.5-0.20240126074033-6a6993d52d69/example_test.go (about)

     1  package chglog
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  )
     9  
    10  func Example() {
    11  	gen := NewGenerator(NewLogger(os.Stdout, os.Stderr, false, true),
    12  		&Config{
    13  			Bin:        "git",
    14  			WorkingDir: ".",
    15  			Template:   "CHANGELOG.tpl.md",
    16  			Info: &Info{
    17  				Title:         "CHANGELOG",
    18  				RepositoryURL: "https://github.com/git-chglog/git-chglog",
    19  			},
    20  			Options: &Options{
    21  				CommitFilters: map[string][]string{
    22  					"Type": {
    23  						"feat",
    24  						"fix",
    25  					},
    26  				},
    27  				CommitSortBy:      "Scope",
    28  				CommitGroupBy:     "Type",
    29  				CommitGroupSortBy: "Title",
    30  				CommitGroupTitleMaps: map[string]string{
    31  					"feat": "Features",
    32  					"fix":  "Bug Fixes",
    33  				},
    34  				HeaderPattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$",
    35  				HeaderPatternMaps: []string{
    36  					"Type",
    37  					"Scope",
    38  					"Subject",
    39  				},
    40  				IssuePrefix: []string{
    41  					"#",
    42  					"gh-",
    43  				},
    44  				RefActions:   []string{},
    45  				MergePattern: "^Merge pull request #(\\d+) from (.*)$",
    46  				MergePatternMaps: []string{
    47  					"Ref",
    48  					"Source",
    49  				},
    50  				RevertPattern: "^Revert \"([\\s\\S]*)\"$",
    51  				RevertPatternMaps: []string{
    52  					"Header",
    53  				},
    54  				NoteKeywords: []string{
    55  					"BREAKING CHANGE",
    56  				},
    57  			},
    58  		})
    59  
    60  	buf := &bytes.Buffer{}
    61  	err := gen.Generate(buf, "")
    62  
    63  	if err != nil {
    64  		log.Fatalln(err)
    65  	}
    66  
    67  	fmt.Println(buf.String())
    68  }