Как узнать исходный репозиторий разветвленного репозитория в azure devops?

#azure-devops #git-fork

#azure-devops #git-fork

Вопрос:

Я работаю над репозиторием в моем проекте Azure DevOps, который является разветвленным из какого-либо другого проекта Azure DevOps. Я хотел бы знать источник (исходное хранилище, из которого выполняется разветвление).

Дайте мне знать, как я могу получить эту информацию.

Ответ №1:

Я не знаю, что это отображается в пользовательском интерфейсе, но есть по крайней мере два других способа получить информацию о вышестоящем (родительском) репозитории

Вариант 1. используйте Rest API

В GET https://dev.azure.com/{organization}}/{{project}}/_apis/git/repositories/{{forkname}}?includeParent=trueamp;api-version=6.0 ответном сообщении будет вызываться поле parentRepository , содержащее сведения о вышестоящем репозитории

 ...
"parentRepository": {
        "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "name": "myrepo",
        "isFork": false,
        "url": "https://dev.azure.com/myorg/_apis/git/repositories/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "remoteUrl": "https://myorg@dev.azure.com/myorg/myproject/_git/myproject",
        "sshUrl": "git@ssh.dev.azure.com:v3/myorg/myproject/myproject",
        "project": {
            "id": "yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
            "name": "myproject",
            "url": "https://dev.azure.com/myorg/_apis/projects/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
            "state": "unchanged",
            "visibility": "unchanged",
            "lastUpdateTime": "0001-01-01T00:00:00"
        },
        "collection": null
    }
...
 

Вариант 2: клонируйте репозиторий и проверьте сообщение сервера

При клонировании разветвленного репозитория из репозиториев Azure DevOps сервер отправляет следующее сообщение (видимое с помощью стандартного клиента командной строки git)

 Cloning into 'myfork'...
Password for 'https://danielorn@dev.azure.com':
remote: Azure Repos
remote: This repository is a fork. Learn more at https://aka.ms/whatisafork.
remote: To add its upstream as a remote, run:
remote: git remote add upstream https://myorg@dev.azure.com/myorg/myproject/_git/myrepo
remote:
remote: Found 9 objects to send. (67 ms)
Unpacking objects: 100% (9/9), 1.78 KiB | 6.00 KiB/s, done.
 

Из этого сообщения вы можете найти исходный репозиторий, просмотрев предложенный восходящий удаленный:

 git remote add upstream https://myorg@dev.azure.com/myorg/myproject/_git/myrepo
 

Другими словами, вызывается исходное репозиторий fork myrepo и находится myproject внутри myorganization .

Комментарии:

1. Большое спасибо. Я попробую это.