Не удается зафиксировать в репозитории, используя Octokat в node.js, чтобы использовать github api

Я пытаюсь установить соединение с API github с помощью пакета Octokat для node.js. Мне удается сделать некоторые вещи, такие как вход в систему, получить все репозитории для пользователя, создать новый репозиторий для пользователя, получить какой-то конкретный репозиторий и получить все коммиты для этого репозитория, но у меня возникают проблемы с коммитом.

Я действительно хочу знать, есть ли полный список методов октоката, потому что я изо всех сил пытаюсь найти это. В репозитории github для octokat написано, что нужно искать множество файлов, но я не нашел полного списка, только примеры.

Я делаю бэкэнд с большим количеством API-сервисов и интерфейсом, который его использует.

Вот что я делаю для коммита в бэкэнде:

router.post('/crearcommit', function (req,res, next){
    this.repo.commits.fetch().then(function ({items}) {
      let lastCommit = items[items.length - 1];
      this.repo.git.commits.create({message: req.body.mensajeCommit, tree: lastCommit.commit.tree.sha, parents: [lastCommit.sha]}).
      then(function (resultado) {
        return this.repo.git.commits.add({"ref":"refs/heads/master","sha":resultado.sha}, function(err, val) {
            if(err){
                return res.status(500).json({
                    message: 'Error al commitear, : '+" err: "+err
                });
            }
            res.status(200).json({
                message: " Exito, err: "+err,
                data: val 
            });
        });
     });
    });
 });

Где this.repo был установлен прежде, как это:

router.get('/usuariorepoinfo', function (req,res, next){

    // obtiene un repositorio en particular
    this.repo = this.octo.repos(this.usuarioGit, req.query.repositorio);

});

и вот так.окто вот так:

router.get('/usuariogituserpasword', function (req,res, next){

    // se conecta a git con un usuario en particular
    this.octo = new Octokat({
        username: req.query.user,
        password: req.query.password
    });
});

Коммит был основан на этом: https://github.com/philschatz/octokat.js/blob/master/test/ruby-specs/commits.spec.js строки 31-38.

Часть this.repo.git.commits.add была создана мной, я понятия не имею, я просто пытаюсь что-то сделать... Я думаю, что, возможно, я создаю коммит, но я не нажимаю, может ли это быть?

Я следил за видео на YouTube, которое делало коммит с использованием github api и почтальона, и после звонка:

POST https://api.github.com/repos/ManuViola77/pruebaGitHub/git/commits 
with Body content:
{
  "parents": ["a78a559a978578c206392a027740943bbbc7dd41"],
  "tree": "40c2ed57db9cfb0bc3eabf38568d8162789b06da",
  "message": "nuevo commit desde la api."
}

(что я думаю, что это может быть часть, которую я делаю) он делает это:

POST https://api.github.com/repos/ManuViola77/pruebaGitHub/git/refs/heads/master
with Body content:
{
  "sha": "682a513e2d82550778c4495edd7094733fdb987c" -> the new commit
} 

я думаю, что это может быть то, что я скучаю.

Заранее спасибо, извините за беспорядок, надеюсь понятно для понимания проблемы, иначе просто спросите что я имел ввиду.

0 ответов

Другие вопросы по тегам