
Company News
Socket Partners with Replit to Block Malicious Packages in AI-Powered Development
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.
nodegit-kit
Advanced tools
Promises for git commands such as git init,
git status, git add *, git diff, git log and git commit -am"commit message".
Comments are welcome at nodegit-kit/issues
npm i --save nodegit-kit
var git = require('nodegit-kit');
git.open('../repo-path/new/or/existing')
.then(function(repo){
// git diff
return git.diff(repo)
.then(function(diff){
console.log(diff);
// git commit -am"commit message"
return git.commit(repo, {
'message': 'commit message'
});
})
.then(function(){
// git log
return git.log(repo);
})
.then(function(log){
console.log(log);
});
})
.catch(function(error){
console.error(error);
});
git.open('../repo-path/new/or/existing')
.then(function(repo){
// git status
return git.status(repo);
})
.then(function(status){
console.log(status);
});
Allows to write/read global and local values.
Local values are stored in the Git directory ./git/config and overrule global configurations.
Git locks the config when changing configurations,
therefore modifications can not be done in parallel,
e.g. Promise.all multiple individual git.config.set calls
will throw a failed to lock file for writing error.
See also 8.1 Customizing Git - Git Configuration (Git SCM Documentation)
Setting user name and email similar to
git config user.name "John Doe" and git config user.email johndoe@example.com.
git.open('my/repository')
.then(function(repo){
return git.config.set(repo, {
'user.name': 'John Doe',
'user.email': 'johndoe@example.com'
});
});
Similar to git config user.name returns config for a repository if there any or else the global Git configuration.
git.open('my/repository')
.then(function(repo){
return git.config.get(repo, ['user.name', 'user.email']);
})
.then(function(configs){
// [ 'John Doe', 'johndoe@example.com' ]
});
When no repo is given setting and getting config will operate in --global mode and read and write to ~/.gitconfig (or ~/.config/git/config).
git.config.get(['user.name', 'user.email'])
.then(function(config){
// [ 'John Doe', 'johndoe@example.com' ]
});
// warning this will change your global git config
git.config.set({
'user.name': 'John Doe',
'user.email': 'johndoe@example.com'
});
npm install
npm test
# debug nodegit-kit
DEBUG=kit* npm test
# debug all
DEBUG=* npm test
FAQs
Complementary NodeGit helpers returning native Promises, helps with git commands such as init, add, commit, status, diff
The npm package nodegit-kit receives a total of 390 weekly downloads. As such, nodegit-kit popularity was classified as not popular.
We found that nodegit-kit demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Company News
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.

Security News
npm confirmed a tooling bug incorrectly marked several one-character packages as security holders and said it was working on a rollback.

Research
/Security News
Newer packages in this compromise use native extensions and .pth loaders to execute JavaScript stealers in developer environments.