for-each-branch
v0.2.6
Published
Iterate over all branches in a repository
Downloads
6
Readme
for-each-branch
Iterate over all branches in a repository.
Requirements
This library requires git
to be available in your PATH!
Installation
npm install for-each-branch
or
yarn add for-each-branch
Usage
const { forEachBranch } = require("for-each-branch");
forEachBranch({
dir: "./a-local-git-workspace",
callback: obj => console.log(obj.branch)
});
API
forEachBranch(options)
Calls git checkout
for each remote branch and calls the callback. The options argument is an object with the following recognized keys:
dir
- The directory of the Git workspacebranches
(default/.+/
) - Regular expression or string, branches not matching will be ignoredremote
(defaultorigin
) - Name of the Git remoteforce
(defaultfalse
) - Use--force
when callinggit checkout
reset
(defaultfalse
) - Reset the branch to the head of the remote branch after checkoutclean
(defaultfalse
) - Rungit clean
after checkoutcallback
(default() => {}
) - The callback to call after each branch has been checked out. When the callback returns a Promise, execution will halt until it is resolved
To prevent accidental deletions,
force
,reset
andclean
all default tofalse
. However, they should probably be set totrue
for almost all use cases. Otherwise, switches between branches might not work or build results will be unreproducible.
The callback will receive an object of the form { dir, branch, head, branches, refs }
, where dir
is
the directory of the Git workspace, branch
is the currently checked-out branch, head
is the SHA of
the current HEAD of the branch, branches
is a list of all (filtered) branches in the repository
and refs
is a list of { branch, head }
items.
Returns a Promise that resolves to a list of { branch, head }
items.
License
MIT