diff --git a/lib/data-generators/git-tag-commit.js b/lib/data-generators/git-tag-commit.js index cf2207b..97b5076 100644 --- a/lib/data-generators/git-tag-commit.js +++ b/lib/data-generators/git-tag-commit.js @@ -9,24 +9,33 @@ module.exports = CoreObject.extend({ }, generate: function() { - var commitHashLength = this._plugin.readConfig('commitHashLength'); - var separator = this._plugin.readConfig('separator'); - var info = gitRepoInfo(); + var providedTag = this._plugin.readConfig('tag'); - if (info === null || info.root === null) { - return RSVP.reject('Could not find git repository'); - } + if (providedTag) { + return RSVP.resolve({ + revisionKey: providedTag, + timestamp: new Date().toISOString() + }); + } else { + var commitHashLength = this._plugin.readConfig('commitHashLength'); + var separator = this._plugin.readConfig('separator'); + var info = gitRepoInfo(); - var tag = info.lastTag; - var sha = info.sha.slice(0, commitHashLength); + if (info === null || info.root === null) { + return RSVP.reject('Could not find git repository'); + } - if (!tag || !sha) { - return RSVP.reject('Could not build revision with tag `' + tag + '` and commit hash `' + sha + '`'); - } + var tag = info.lastTag; + var sha = info.sha.slice(0, commitHashLength); - return RSVP.resolve({ - revisionKey: tag + separator + sha, - timestamp: new Date().toISOString() - }); + if (!tag || !sha) { + return RSVP.reject('Could not build revision with tag `' + tag + '` and commit hash `' + sha + '`'); + } + + return RSVP.resolve({ + revisionKey: tag + separator + sha, + timestamp: new Date().toISOString() + }); + } } });