repomine v1.0.4
repomine
Basic usage
repomine.update({
path: './destination_directory',
repos: [{
dir: 'repository-dir-name',
git: 'https://github.com/link/to/repository'
}]
})Info
Repomine update() method verifies target path and then clones or fast forwards repositories returning ES6 promise object.
decorating settings object passed as a parameter.
Promise should always resolve with settings object, passed as a parameter, decorated with fullPath propery and additionally each repo object will get couple of properies: ready and error.
If error occurs during clonning or updating it will be attached to individual repo object on repos property.
Notes
Original gitnode package has been replaced with much slower, simple-git,
due to issues with cloning private repositories.
Following nodegit blog post solves
cloning issues only, fetching authentication still fails, original commit
is here
Currently used simple-git library is a wrapper executing shell commands.
That means git has to be configured on local box.
Example
Executing below code from local folder
var repomine = require('repomine')
repomine.update({
path: './tmp',
repos: [{
dir: "jewelines",
git: "https://github.com/indieforger/page-jewelines"
},{
dir: "xenoempires",
git: "https://github.com/indieforger/page-xenoempires",
ignore: true
}]
}).then((obj) => {
console.log(obj)
}, (err) => {
console.log(err)
})Should output something like
{ path: './tmp',
repos:
[ { dir: 'jewelines',
git: 'https://github.com/indieforger/page-jewelines',
ready: true,
error: null },
{ dir: 'xenoempires',
git: 'https://github.com/indieforger/page-xenoempires',
ignore: true,
ready: false,
error: [Error: Repository was ignored] } ],
fullPath: '/Users/Indieforger/repomine/node_modules/verify-path/tmp' }