nodegit-flow v2.2.2
nodegit-flow
Adds gitflow methods to the nodegit module.
Installation
npm install --save nodegit-flowUsage
nodegit-flow is a drop in replacement for nodegit. All methods in nodegit are included in nodegit-flow.
You must provide the nodegit module to nodegit-flow.
var nodegit = require('nodegit-flow')(require('nodegit')); // wrap nodegit in git flow methodsYou can initialize an instance of nodegit-flow or use its static methods
var flow = nodegit.Flow.init(repo, config);
flow.startRelease('1.0.0'); // Use a flow instance to start a release
nodegit.Flow.startRelease(repo, '1.0.0'); // or the static equivalentMethods
- Flow.finishFeature
- Flow.finishHotfix
- Flow.finishRelease
- Flow.getConfig
- Flow.getConfigDefault
- Flow.getConfigRequiredKeys
- Flow.getDevelopBranch
- Flow.getFeaturePrefix
- Flow.getHotfixPrefix
- Flow.getMasterBranch
- Flow.getReleasePrefix
- Flow.getSupportPrefix
- Flow.getVersionTagPrefix
- Flow.init
- Flow.isInitialized
- Flow.open
- Flow.startFeature
- Flow.startHotfix
- Flow.startRelease
- Flow.validateConfig
finishFeature(repository, name, options)
By default finishFeature will merge the feature branch into the develop branch and delete the feature branch. If successful, finishFeature will resolve with the merge commit. If a merge conflict occurs finishFeature will reject with the index of the conflict.
options Object
isRebaseBoolean default=falsekeepBranchBoolean default=false
Example:
NodeGit.Flow.finishFeature(
repository,
'my-feature'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});finishHotfix(repository, name, options)
By default finishHotfix will merge the hotfix branch into the develop branch and the master branch, create a tag at the merge commit on master, and delete the hotfix branch. If successful, finishHotfix will resolve with the merge commit on develop. If a merge conflict occurs finishHotfix will reject with the index of the conflict.
options Object
keepBranchBoolean default=falsemessageString tag annotation default=''
Example:
NodeGit.Flow.finishHotfix(
repository,
'my-hotfix'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});finishRelease(repository, name, options)
By default finishRelease will merge the release branch into the develop branch and the master branch, create a tag the points to the merge commit on master, and delete the release branch. If successful, finishRelease will resolve with the merge commit. If a merge conflict occurs finishRelease will reject with the index of the conflict.
options Object
isRebaseBoolean default=falsekeepBranchBoolean default=falsemessageString tag annotation default=''
Example:
NodeGit.Flow.finishRelease(
repository,
'my-release'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});getConfig(repository)
Retrieves an object that contains the git config values that are relevant to git flow
getConfigDefault()
Returns the following object which is the standard git flow config object
{
'gitflow.branch.master': 'main',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.feature': 'feature/',
'gitflow.prefix.release': 'release/',
'gitflow.prefix.hotfix': 'hotfix/',
'gitflow.prefix.versiontag': ''
}getConfigRequiredKeys()
Returns the config keys that are required to use nodegit-flow
getDevelopBranch(repository)
Returns the value stored within a repos git config with the key of gitflow.branch.develop
getHotfixPrefix(repository)
Returns the value stored within a repos git config with the key of gitflow.prefix.hotfix
getMasterBranch(repository)
Returns the value stored within a repos git config with the key of gitflow.branch.master
getFeaturePrefix(repository)
Returns the value stored within a repos git config with the key of gitflow.prefix.feature
getReleasePrefix(repository)
Returns the value stored within a repos git config with the key of gitflow.prefix.release
getSupportPrefix(repository)
Returns the value stored within a repos git config with the key of gitflow.prefix.support
getVersionTagPrefix(repository)
Returns the value stored within a repos git config with the key of gitflow.prefix.versiontag
init(repository, config)
Sets the git flow config values for the given repo and returns a new instance of nodegit-flow. This new instance contains all of the static methods within the NodeGit.Flow object but does not require a repository to be passed in when using its methods.
isInitialized(repository)
Resolves to true or false depending on whether the repository has git flow initialized
Example:
NodeGit.Flow.isInitialized(repository)
.then((isInitialized) => {
console.log(isInitialized); // => true or false depending the git config of the repo
});open(repository)
Resolves to a new instance of nodegit-flow if the repository has git flow initialized, otherwise reject with the reason
Example:
NodeGit.Flow.open(repository)
.then((flow) => {
return flow.getMasterBranch();
})
.then((masterBranchName) => {
console.log(masterBranchName); // => main
});startFeature(repository, name, options)
options Object
shaStringoptionsis an object with ashathat marks the starting commit of the feature. If noshais passed in, the feature will start at thedevelopbranch.The name of the feature branch is the
featurePrefixset in the git config appended with the passed innameparameter;
Example:
NodeGit.Flow.startFeature(
repository,
'my-feature',
{sha: 'a7b7a15c94df9528339fd86b9808ec2d9c645705'}
)
.then((featureBranch) => {
console.log(featureBranch.shorthand()); // => feature/my-feature
});startHotfix(repository, name)
The name of the hotfix branch is the hotfixPrefix set in the git config appended with the passed in name parameter;
Example:
NodeGit.Flow.startHotfix(
repository,
'0.1.13'
)
.then((hotfixBranch) => {
console.log(hotfixBranch.shorthand()); // => hotfix/0.1.13
});startRelease(repository, name options)
options Object
shaStringoptionsis an object with ashathat marks the starting commit of the release. If noshais passed in, the release will start at thedevelopbranch.
The name of the release branch is the releasePrefix set in the git config appended with the passed in name parameter;
Example:
NodeGit.Flow.startRelease(
repository,
'0.2.0'
)
.then((releaseBranch) => {
console.log(releaseBranch.shorthand()); // => release/0.2.0
});validateConfig(config)
Validates that a config object has all of the required keys for nodegit-flow to work.
Example:
const result = NodeGit.Flow.validateConfig({
'gitflow.branch.master': 'main',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.feature': 'feature/',
'gitflow.prefix.hotfix': 'hotfix/'
});
console.log(result); // => gitflow config missing key(s): gitflow.prefix.release2 years ago
5 years ago
5 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago