-
-
Save freegroup/b2c665438ca58b2a380639515f51aa8f to your computer and use it in GitHub Desktop.
Revisions
-
StephanHoyer revised this gist
Feb 23, 2015 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,5 @@ 'use strict'; var github = require('./github'); var api = github({ @@ -12,4 +14,4 @@ api.commit([{ }, { path: 'test/file2.md', content: '# File2' }], 'test commit via api'); // returns a promise -
StephanHoyer created this gist
Feb 23, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,74 @@ 'use strict'; var Octokat = require('octokat'); var extend = require('lodash/object/assign'); var defaults = { branchName: 'master', token: '', username: '', reponame: '' }; function init(options) { options = extend({}, defaults, options); var head; var octo = new Octokat({ token: options.token }); var repo = octo.repos(options.username, options.reponame); function fetchHead() { return repo.git.refs.heads(options.branchName).fetch(); } function fetchTree() { return fetchHead().then(function(commit) { head = commit; return repo.git.trees(commit.object.sha).fetch(); }); } function commit(files, message) { return Promise.all(files.map(function(file) { return repo.git.blobs.create({ content: file.content, encoding: 'utf-8' }); })).then(function(blobs) { return fetchTree().then(function(tree) { return repo.git.trees.create({ tree: files.map(function(file, index) { return { path: file.path, mode: '100644', type: 'blob', sha: blobs[index].sha }; }), basetree: tree.sha }); }); }).then(function(tree) { return repo.git.commits.create({ message: message, tree: tree.sha, parents: [ head.object.sha ] }); }).then(function(commit) { return repo.git.refs.heads(options.branchName).update({ sha: commit.sha }); }); } return { commit: commit }; } module.exports = init; This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,15 @@ var github = require('./github'); var api = github({ username: 'YOUR_USERNAME', token: 'API_TOKEN', // created here https://github.com/settings/applications#personal-access-tokens reponame: 'BRANCH_NAME' }); api.commit([{ path: 'test/file1.md', content: '# File1' }, { path: 'test/file2.md', content: '# File2' }], 'test commit via api');