@TemaKam

Почему не работает коммит через апи?

пытаюсь сделать коммит
https://docs.gitlab.com/ee/api/commits.html#create...
def create_commit(self, project: str, ref: str) -> dict:
        self.auth.update({"Content-Type": "application/json"})
        data = {
                "branch": ref,
                "commit_message": "create",
                "actions": [
                    {"action": "create", "file_path": "1.json", "content": "test"}
                ],
                }
        res = requests.post(
            url=f"{self.base_path}/api/v4/projects/{project}/repository/commits",
            headers=self.auth,
            data=json.dumps(data),
        )
        res.raise_for_status()
        return res.json()

всегда возвращает 400 Client Error: Bad Request
хоть как пробовал, что не так?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Рекомендация soremix корректная. Удачный запрос:
import requests
url = 'https://gitlab.com/api/v4/projects/123/repository/commits'
data = {"branch": "main", "commit_message": "create", "actions": [{"action": "create", "file_path": "1.json", "content": "test"}]}
headers={'PRIVATE-TOKEN': 'token'}

res = requests.post(url, headers=headers, json=data)


Важный момент - action create возвращает 400 если файл уже существует в репозитории
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы