Редактировать несколько файлов в одном коммите с GitHub API - PullRequest
1 голос
/ 04 мая 2020

Я использую GitHub API в веб-приложении C# (с Blazor). Я хочу иметь возможность создавать один коммит для добавления, удаления и редактирования нескольких файлов в папке в хранилище. Я знаю, что могу отправить запрос PUT на URL https://api.github.com/repos/[username]/[repository]/contents/[file] с этим содержимым, чтобы создать файл (и я также могу отредактировать файл, добавив SHA ha sh):

{
    "message": "[Commit message]",
    "content": "[Content encoded in base64]",
    "committer": {
        "name": "[Committer name]",
        "email": "[Committer email]"
    }
}

Но это создает один коммит для каждого изменения файла. Есть ли способ, которым я могу сделать несколько операций в одном коммите (используя GitHub API или что-то еще)? Я бы использовал что-то вроде libgit2sharp, но я не хочу клонировать репозиторий в папку в файловой системе.

1 Ответ

0 голосов
/ 10 мая 2020

Есть ли способ, которым я могу выполнить несколько операций в одном коммите (используя GitHub API или что-то еще)?

Существует базовый Git API данных , который можно использовать для создания коммита с нуля:

  • файлы загружаются как blobs с использованием деревьев API
  • используются для указания того, каким должно быть состояние репозитория (обновите пути, чтобы указывать на новые BLOB-объекты)
  • , затем создайте новый commit , используя новое дерево root и дополнительные метаданные
  • , если можете, обновите ссылку (т. Е. Ветвь), указав на этот новый коммит
...