Get Git info from a working copy and populate grunt.config with the data
This plugin requires Grunt >=0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-gitinfo --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-gitinfo');
Inspired by grunt-svninfo. In your project's Gruntfile, add a section named gitinfo
to the data object passed into grunt.initConfig()
.
Executing the task will populate grunt.config.gitinfo with repository data described below. You can use gitinfo object in your build as e.g. <%= gitinfo.local.branch.current.SHA %>
.
The resulting gitinfo
object has the following structure:
{
local : {
branch : {
current : {
SHA : "Current HEAD SHA",
shortSHA : "Current HEAD short SHA",
name : "Current branch name",
currentUser : "Current git user",
lastCommitTime : "Last commit time",
lastCommitMessage : "Last commit message",
lastCommitAuthor : "Last commit author",
lastCommitNumber : "Last commit number"
}
}
},
remote : {
origin : {
url : "Branch Url"
}
},
(custom command values)
}
Type: String
Allows to specify a cwd (current working directory) path repository. The default directory is the where you run grunt from ('.'
).
Example:
gitinfo: {
options: {
cwd: './myproject/ishere'
},
...
}
Type: Object
Allows to specify a custom git command.
Example:
gitinfo: {
commands: {
'my.custom.command' : ['arg1', 'arg2', (...)] // git arg1 arg2 (...)
}
}
This will populate <%= gitinfo.my.custom.command %>
with git arg1 arg2
output.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
- #35 Update peerDependencies
- #30 Update peerDependencies to support Grunt 1.0
- #19 Added the command lastCommitMessage
- #18 Update dependencies
- #17 Fix JSHint warnings about if-else braces
- Removed tag from commands list
- #13 Adding lastCommitNumber command
- #12 Logging through grunt.log API
- #9 Extend existing gitinfo config