示例#1
0
文件: github.es6.js 项目: odf/RCSR
  var put = function(path, content, message, onProgress) {
    return csp.go(function*() {
      var data, response, result;

      data = {
        message: message || 'automated commit',
        content: new Buffer(content).toString('base64'),
        sha    : yield shaFor(path)
      };

      response = yield request('PUT', path, data, onProgress);
      result = response.data;

      //TODO report an error if these don't match
      console.log(result.content.sha);
      console.log(sha1(content));

      return {
        status: response.status,
        sha   : result.content.sha,
        commit: {
          sha: result.commit.sha
        }
      };
    });
  };
示例#2
0
文件: github.es6.js 项目: odf/RCSR
  var shaFor = function(path) {
    return csp.go(function*() {
      var parts, dir, file, contents, i;

      parts = path.split('/');
      file  = parts.pop();
      dir   = parts.join('/');

      contents = (yield get(dir)).result;
      for (i = 0; i < contents.length; ++i)
        if (contents[i].name == file)
          return contents[i].sha;
    });
  };
示例#3
0
文件: github.es6.js 项目: odf/RCSR
  var get = function(path) {
    return csp.go(function*() {
      var response, result, content;

      response = yield request('GET', path);
      result = response.data;

      if (result.content)
        content = new Buffer(result.content, 'base64').toString('utf8');

      return {
        status : response.status,
        result : result,
        content: content,
        sha    : result.sha
      };
    });
  };