При загрузке файла в azure devops с помощью Push API объект """ не существует". получить отображение "typeName":"Microsoft.TeamFoundation.Git

Я пытаюсь добавить файл в папку respos, используя следующие API:

ado_req_headers_ATT = {'Content-Type':'application/octet-stream'}
Get_Branch_url = str(organization_url)+str('/_apis/git/repositories/')+str(ReposID)+str('/refs?filter=heads/&api-version=6.0')
print(Get_Branch_url)
Get_Branch_Details = requests.get(url=Get_Branch_url,headers=ado_req_headers_ATT,auth=('',ADO_AUTH_PAT))
#print(Get_Branch_Details.status_code)
print(Get_Branch_Details.text)
Get_Branch_Details=Get_Branch_Details.json()
for item in Get_Branch_Details["value"]:
    if item["name"] == **'refs/heads/XXX'**:
        old_object_ID = item["objectId"]
        old_object_name= item["name"]
print(old_object_name,":-",old_object_ID) **## Prints refs/heads/XXX : YYYYYYYYYYYYYYYYYYYYYY**

Ответ для приведенного выше URL-адреса включает:

    {
  "value": [
{...
  **"name": "refs/heads/XXX",
  "objectId": "YYYYYYYYYYYYYYYYYYYYYY",**
  "creator": {
    "displayName": "AAAAAAAAAA",
    "url": "https://spsprodsin1.vssps.visualstudio.com/UUUUUU",
    "_links": {
      "avatar": {
        "href": "https://dev.azure.com/TTTTTT"
      }
    },
    "id": "MMMMMMMMM",
    "uniqueName": "PPPPPPPP",

И обрабатывать этот идентификатор объекта: YYYYYYYYYYYYYYYYYYYYYY как старый идентификатор объекта и пытаться вставить файл в путь: refs/heads/XXX, используя приведенный ниже API:

###### Push a File in  Ref_Devops-dev ###############################
ado_req_headers_ATT = {"Content-Type":"application/json-patch+json"}
push_file_url = str(organization_url)+str('/_apis/git/repositories/')+str(ReposID)+str('/pushes?api-version=6.0')
Body_data = {"refUpdates": [{"name": refs/heads/XXX,"oldObjectId":YYYYYYYYYYYYYYYYYYYYYY}],"commits":[{"comment": "Added text file.","changes":[{"changeType": "add","item": {"path":"/test.txt"},"newContent": {"content": "# Tasks\n\n* Item 1\n* Item 2","contentType": "rawtext"}}]}]}
Body_data = json.dumps(Body_data)
print(Body_data)
Push_file= requests.post(url=push_file_url,headers=ado_req_headers_ATT,data=Body_data,auth=('',ADO_AUTH_PAT))
print(Push_file.json())
print(Push_file.status_code)
print(Push_file.text)

Но ответ был:

{"$id":"1","innerException":null,"message":"TF401035: The object 'YYYYYYYYYYYYYYYYYYYYYY' does not exist.","typeName":"Microsoft.TeamFoundation.Git.Server.GitObjectDoesNotExistException, Microsoft.TeamFoundation.Git.Server","typeKey":"GitObjectDoesNotExistException","errorCode":0,"eventId":3000}

И, конечно же, отсутствует последний шаг и основной. Любые предложения, пожалуйста

Пожалуйста, поправьте меня, нужно ли обращаться к любому другому API, чтобы получить идентификатор объекта.

ReachDhruvah 19.12.2020 07:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Некоторые методы, о которых вы не знали, что они существуют в Python.
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
311
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибку выше можно устранить, обратившись к API фиксации вместо упомянутого API и получив последний идентификатор фиксации.

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