Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
nodegit-flow
Advanced tools
nodegit-flow contains gitflow methods that aren't include in the vanilla nodegit package
Adds gitflow methods to the nodegit module.
npm install --save nodegit-flow
nodegit-flow
is a drop in replacement for nodegit
. All methods in nodegit
are included in nodegit-flow
.
var nodegit = require('nodegit-flow'); // wrap nodegit in git flow methods
You 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 equivalent
By default finishFeature
will merge the feature branch into the develop branch and delete the feature 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
isRebase
Boolean default=false
keepBranch
Boolean default=false
Example:
NodeGit.Flow.finishRelease(
repository,
'my-feature'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});
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
keepBranch
Boolean default=false
Example:
NodeGit.Flow.finishHotfix(
repository,
'my-hotfix'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});
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
isRebase
Boolean default=false
keepBranch
Boolean default=false
Example:
NodeGit.Flow.finishRelease(
repository,
'my-release'
)
.then((mergeCommit) => {
console.log(mergeCommit.id()); // => the sha of the newly created commit
});
Retrieves an object that contains the git config values that are relevant to git flow
Returns the following object which is the standard git flow config object
{
'gitflow.branch.master': 'master',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.feature': 'feature/',
'gitflow.prefix.release': 'release/',
'gitflow.prefix.hotfix': 'hotfix/',
'gitflow.prefix.versiontag': ''
}
Returns the config keys that are required to use nodegit-flow
Returns the value stored within a repos git config with the key of gitflow.branch.develop
Returns the value stored within a repos git config with the key of gitflow.prefix.hotfix
Returns the value stored within a repos git config with the key of gitflow.branch.master
Returns the value stored within a repos git config with the key of gitflow.prefix.release
Returns the value stored within a repos git config with the key of gitflow.prefix.support
Returns the value stored within a repos git config with the key of gitflow.prefix.versiontag
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.
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
});
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); // => master
});
options
Object
sha
Stringoptions
is an object with a sha
that marks the starting commit of the feature. If no sha is passed in, the feature will start at the develop
branch.
The name of the feature branch is the featurePrefix
set in the git config appended with the passed in name
parameter;
Example:
NodeGit.Flow.startRelease(
repository,
'my-feature',
{sha: 'a7b7a15c94df9528339fd86b9808ec2d9c645705'}
)
.then((featureBranch) => {
console.log(featureBranch.shorthand()); // => feautre/my-feature
});
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
});
The name of the release branch is the releasePrefix
set in the git config appended with the passed in name
parameter;
Example:
NodeGit.Flow.startHotfix(
repository,
'0.2.0'
)
.then((releaseBranch) => {
console.log(releaseBranch.shorthand()); // => release/0.2.0
});
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': 'master',
'gitflow.branch.develop': 'develop',
'gitflow.prefix.feature': 'feature/',
'gitflow.prefix.hotfix': 'hotfix/'
});
console.log(result); // => gitflow config missing key(s): gitflow.prefix.release
FAQs
nodegit-flow contains gitflow methods that aren't include in the vanilla nodegit package
We found that nodegit-flow demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.