All Projects → tomasbjerre → git-changelog-maven-plugin

tomasbjerre / git-changelog-maven-plugin

Licence: other
Maven plugin that can generate a changelog, or releasenotes, from git repository

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to git-changelog-maven-plugin

Git Changelog Lib
Library for parsing and generating a changelog, or releasenotes, from a GIT repository
Stars: ✭ 117 (+125%)
Mutual labels:  jira, changelog
Git Chglog
CHANGELOG generator implemented in Go (Golang).
Stars: ✭ 1,895 (+3544.23%)
Mutual labels:  jira, changelog
generate-changelog
generates changelog from git based on jira tickets
Stars: ✭ 18 (-65.38%)
Mutual labels:  jira, changelog
Chyle
Changelog generator : use a git repository and various data sources and publish the result on external services
Stars: ✭ 137 (+163.46%)
Mutual labels:  jira, changelog
actionview-fe
ActionView front-end source code, based on Reactjs+Redux.
Stars: ✭ 63 (+21.15%)
Mutual labels:  jira
github-changelog
Provides a command line tool that generates a changelog based on titles of pull requests merged between specified references.
Stars: ✭ 48 (-7.69%)
Mutual labels:  changelog
jira-node-cli
JIRA command line interface written in NodeJS
Stars: ✭ 58 (+11.54%)
Mutual labels:  jira
mazda-firmware-changelogs
Mazda Firmware Changelog
Stars: ✭ 37 (-28.85%)
Mutual labels:  changelog
tribe
Helps you answer why the @$*% that code exists.
Stars: ✭ 18 (-65.38%)
Mutual labels:  jira
Jira-Hot-Linker
Jira Hot Linker
Stars: ✭ 36 (-30.77%)
Mutual labels:  jira
browser-resources
A Collection of official Resources/Status/Issues for browsers.
Stars: ✭ 127 (+144.23%)
Mutual labels:  changelog
goji
Command line JIRA client
Stars: ✭ 17 (-67.31%)
Mutual labels:  jira
changelog
Changelog library - builder setup and advanced filtering
Stars: ✭ 73 (+40.38%)
Mutual labels:  changelog
quickstart-atlassian-jira
Jira Software Data Center and Jira Service Desk Data Center with high availability and performance
Stars: ✭ 61 (+17.31%)
Mutual labels:  jira
chan
A Changelog CLI based on http://keepachangelog.com/
Stars: ✭ 74 (+42.31%)
Mutual labels:  changelog
octosync
An open-source solution to keep Github and Jira issues in sync. An alternative to Exalate and Unito.
Stars: ✭ 27 (-48.08%)
Mutual labels:  jira
maintainer
👨‍💻 🐳 Generate personal daily reports or summary, AUTHORS, CONTRIBUTING, CHANGELOG and so on for GitHub user or repository.
Stars: ✭ 199 (+282.69%)
Mutual labels:  changelog
PackageChangeLog
Show Package Changelog On Composer Install/update
Stars: ✭ 15 (-71.15%)
Mutual labels:  changelog
alfred-jira-search
Alfred Workflow to quickly search through Jira issues 🔎
Stars: ✭ 23 (-55.77%)
Mutual labels:  jira
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (-57.69%)
Mutual labels:  changelog

Git Changelog Maven Plugin

Build Status Maven Central

This is a Maven plugin for Git Changelog Lib.

Usage

There is a running example here.

Have a look at the pom.xml where you will find some more examples.

Here is and example that will generate a CHANGELOG.md when running mvn generate-resources.

  <build>
    <plugins>
     <plugin>
      <groupId>se.bjurr.gitchangelog</groupId>
      <artifactId>git-changelog-maven-plugin</artifactId>
      <version>${changelog}</version>
      <executions>
       <execution>
        <id>GenerateGitChangelog</id>
        <phase>generate-sources</phase>
        <goals>
         <goal>git-changelog</goal>
        </goals>
        <configuration>
         <templateContent>
         <![CDATA[
          Template here!
         ]]>
         </templateContent>
        </configuration>
       </execution>
      </executions>
     </plugin>
    </plugins>
  </build>

Template - Simple

{{#tags}}
## {{name}}
 {{#issues}}
  {{#hasIssue}}
   {{#hasLink}}
### {{name}} [{{issue}}]({{link}}) {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
   {{^hasLink}}
### {{name}} {{issue}} {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
  {{/hasIssue}}
  {{^hasIssue}}
### {{name}}
  {{/hasIssue}}

  {{#commits}}
**{{{messageTitle}}}**

{{#messageBodyItems}}
 * {{.}}
{{/messageBodyItems}}

[{{hash}}](https://github.com/{{ownerName}}/{{repoName}}/commit/{{hash}}) {{authorName}} *{{commitTime}}*

  {{/commits}}

 {{/issues}}
{{/tags}}

Template - Semantic versioning from conventional commits

If you are using conventional commits:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

A changelog can be rendered (using Helpers) like this:

# Changelog

{{#tags}}
{{#ifReleaseTag .}}
## [{{name}}](https://gitservice/{{name}}) ({{tagDate .}})

  {{#ifContainsType commits type='feat'}}
### Features

    {{#commits}}
      {{#ifCommitType . type='feat'}}
 - {{#eachCommitScope .}} **{{.}}** {{/eachCommitScope}} {{{commitDescription .}}} ([{{hash}}](https://gitservice/commit/{{hashFull}}))
      {{/ifCommitType}}
    {{/commits}}
  {{/ifContainsType}}

  {{#ifContainsType commits type='fix'}}
### Bug Fixes

    {{#commits}}
      {{#ifCommitType . type='fix'}}
 - {{#eachCommitScope .}} **{{.}}** {{/eachCommitScope}} {{{commitDescription .}}} ([{{hash}}](https://gitservice/commit/{{hashFull}}))
      {{/ifCommitType}}
    {{/commits}}
  {{/ifContainsType}}

{{/ifReleaseTag}}
{{/tags}}

Example - custom helpers

You can add your own helpers and use them in the template. There are also built in Helpers.

  <build>
    <plugins>
     <plugin>
      <groupId>se.bjurr.gitchangelog</groupId>
      <artifactId>git-changelog-maven-plugin</artifactId>
      <version>${changelog}</version>
      <executions>
       <execution>
        <id>GenerateGitChangelog</id>
        <phase>generate-sources</phase>
        <goals>
         <goal>git-changelog</goal>
        </goals>
        <configuration>
          <javascriptHelper>
<![CDATA[
Handlebars.registerHelper('startsWith', function(messageTitle, options) {
  const s = options.hash['s']
  if (new RegExp('^' + s + '.*').test(messageTitle)) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
});

Handlebars.registerHelper('firstLetters', function(from, options) {
  const num = parseInt(options.hash['number'])
  return from.substring(0,num)
});
]]>
          </javascriptHelper>
          <templateContent>
<![CDATA[
{{#commits}}
  {{#startsWith messageTitle s='Removing'}}
    Starts with Removing: "{{messageTitle}}"
    first 10 letters of hash is: {{firstLetters hash number='10'}}
  {{/startsWith}}
{{/commits}}
]]>
          </templateContent>
        </configuration>
       </execution>
      </executions>
     </plugin>
    </plugins>
  </build>

More documentation can be found in the Git Changelog Lib.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].