git-client
v1.8.3
Published
Promise-based git client that mostly just executes the git binary
Downloads
615
Readme
git-client
Promise-based git client that mostly just executes the git binary
Usage
Basic usage
const git = require('git-client');
const hash = await git('rev-parse HEAD');
Multiple arguments
const hash = await git('rev-parse', 'HEAD');
Option building
const hash = await git('rev-parse', { verify: true, short: 6 }, 'HEAD');
Named methods for common commands
const hash = await git.revParse({ verify: true }, 'HEAD');
Advanced Examples
Save file from the web
const writer = await git.hashObject({ w: true, stdin: true, $spawn: true });
const response = await axios.get('https://placekitten.com/1000/1000', { responseType: 'stream' });
// pipe data from HTTP response into git
response.data.pipe(writer.stdin);
// wait for data to finish
await new Promise((resolve, reject) => {
response.data.on('end', () => resolve());
response.data.on('error', () => reject());
});
// read written hash and save to ref
const hash = await writer.captureOutputTrimmed();
Build a tree
const lines = [
'100644 blob bc0c330151d9a2ca8d87d1ff914b87f152036b19\tkitten.jpg',
'100644 blob 97ab63ad46e50ac4012ac9370b33878b224c4fa3\tcage.jpg'
];
const mktree = await git.mktree({ $spawn: true });
const hash = await mktree.captureOutputTrimmed(lines.join('\n')+'\n');