/github-commit

Simple API for committing file changes to github

Primary LanguageJavaScript

@lennym/commit

API for committing file changes to github

Usage

To write content to a file on the default branch:

const Git = require('@lennym/commit');

const git = Git({
  repo: 'lennym/test-repo',
  token: 'YOUR_GITHUB_ACCESS_TOKEN'
});

git
  .add('file.txt', 'File content')
  .commit('Set file content')
  .push()
  .then(() => console.log('All done'));

Branches

To write to a branch other than the default branch for the repo:

const git = Git({
  repo: 'lennym/test-repo',
  token: '...',
  branch: 'development'
});

git
  .add('file.txt', 'File content')
  .commit('Set file content')
  .push()
  .then(() => console.log('All done'));

To create a new branch:

const git = Git({
  repo: 'lennym/test-repo',
  token: '...'
});

git
  .branch('my-new-branch')
  .add('file.txt', 'File content')
  .commit('Set file content')
  .push()
  .then(() => console.log('All done'));

Updating multiple files

To update multiple files in one commit:

const git = Git({
  repo: 'lennym/test-repo',
  token: '...'
});

git
  .add('file1.txt', 'File 1 content')
  .add('file2.txt', 'File 2 content')
  .commit('Set multiple file content')
  .push()
  .then(() => console.log('All done'));

To update multiple files in multiple commits:

const git = Git({
  repo: 'lennym/test-repo',
  token: '...'
});

git
  .add('file1.txt', 'File 1 content')
  .commit('Update file 1')
  .add('file2.txt', 'File 2 content')
  .commit('Update file 2')
  .push()
  .then(() => console.log('All done'));

Non-text files

To add a non-text file, pass a Buffer instead of a string to add:

const img = fs.readFileSync('./some-image.png');

const git = Git({
  repo: 'lennym/test-repo',
  token: '...'
});

git
  .add('image.png', img)
  .commit('Add image file')
  .push()
  .then(() => console.log('All done'));

Other actions

Get the hash of the latest commit

const git = Git({
  repo: 'lennym/test-repo',
  token: '...'
});

git.head()
  .then(sha => console.log(sha));