Git import requests
TFS 2017 | TFS 2015 | TFS 2013
Note
Looking for REST APIS that support TFS 2018 or later versions? See the Azure DevOps REST API Reference.
api-version = 3.0-preview
If you haven't already, look at the information on getting started with these APIs.
Get a list of import requests
GET https://{instance}/DefaultCollection/{project}/_apis/repos/git/repositories/{repository}/importRequests?api-version={version}[&includeAbandoned={bool}]
Parameter | Type | Default | Notes |
---|---|---|---|
URL | |||
instance | string | TFS server name ({server:port}). | |
project | string | ID or name of the project. Optional if specifying an ID for repository. | |
repository | string | ID of the repository. | |
Query | |||
api-version | string | Version of the API to use. | |
includeAbandoned | bool | false | If true, include abandoned requests in the result |
Note
Repositories have both a name and an identifier. Identifiers are globally unique, but several projects may contain a repository of the same name. You don't need to include the project if you specify a repository by ID. However, if you specify a repository by name, you must also specify the project (by name or ID).
By repository ID
Sample request
GET https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests?api-version=3.0-preview
Sample response
{
"count": 1,
"value": [
{
"importRequestId": 2,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vsts-agent.git"
}
},
"status": "queued",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
]
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
}
]
}
By repository ID with abandoned requests
Sample request
GET https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests?includeAbandoned=true&api-version=3.0-preview
Sample response
{
"count": 2,
"value": [
{
"importRequestId": 2,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vsts-agent.git"
}
},
"status": "queued",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
]
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
},
{
"importRequestId": 1,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vscode.git"
}
},
"status": "abandoned",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
],
"errorMessage": "this remote has never connected"
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/1"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/1"
}
]
}
Get an import request
GET https://{instance}/DefaultCollection/{project}/_apis/repos/git/repositories/{repository}/importRequests/{importRequestId}?api-version={version}
Parameter | Type | Notes |
---|---|---|
URL | ||
instance | string | TFS server name ({server:port}). |
project | string | ID or name of the project. Optional if specifying an ID for repository. |
repository | string | ID of the repository. |
importRequestId | int | ID of the import request. |
Query | ||
api-version | string | Version of the API to use. |
Sample request
GET https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2?api-version=3.0-preview
Sample response
{
"importRequestId": 2,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vsts-agent.git"
}
},
"status": "queued",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
]
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
}
Create a request to import a repository
POST https://{instance}/DefaultCollection/{project}/_apis/repos/git/repositories/{repository}/importRequests?api-version={version}
{
"parameters":
{
"gitSource":
{
"url": {string}
},
"serviceEndpointId": {string},
"deleteServiceEndpointAfterImportIsDone": {bool}
}
}
Parameter | Type | Notes |
---|---|---|
URL | ||
instance | string | TFS server name ({server:port}). |
project | string | ID or name of the project. Optional if specifying an ID for repository. |
repository | string | ID of the repository. |
Query | ||
api-version | string | Version of the API to use. |
Body | ||
parameters.gitSource.url | string | Url of the source Git repository to import from |
parameters.serviceEndpointId | string | Service endpoint ID. Required if source repository is private. |
parameters.deleteServiceEndpointAfterImportIsDone | bool | If true, delete service endpoint after import is done. |
Sample request
POST https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests?api-version=3.0-preview
{
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vsts-agent.git"
}
}
}
Sample response
{
"importRequestId": 2,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vsts-agent.git"
}
},
"status": "queued",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
]
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/2"
}
Retry or abandon a failed import request
There can only be one active import request associated with a repository. Marking a failed import request abandoned makes it inactive.
PATCH https://{instance}/DefaultCollection/{project}/_apis/repos/git/repositories/{repository}/importRequests/{importRequestId}?api-version={version}
{
"status": {enum}
}
Parameter | Type | Notes |
---|---|---|
URL | ||
instance | string | TFS server name ({server:port}). |
project | string | ID or name of the project. Optional if specifying an ID for repository. |
repository | string | ID of the repository. |
importRequestId | int | ID of the import request. |
Query | ||
api-version | string | Version of the API to use. |
Body | ||
status | enum { queued, abandoned } | "queued" to retry or "abandoned" to abandon a failed request |
Sample request
PATCH https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/1?api-version=3.0-preview
{
"status": "abandoned"
}
Sample response
{
"importRequestId": 1,
"repository": {
"id": "0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"name": "EmptyGitRepo",
"url": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5",
"project": {
"id": "5745879a-8531-41c3-9ed3-ae7fc07309ff",
"name": "Test",
"url": "https://mytfsserver/DefaultCollection/_apis/projects/5745879a-8531-41c3-9ed3-ae7fc07309ff",
"state": "wellFormed",
"revision": 7
},
"remoteUrl": "https://mytfsserver/DefaultCollection/Test/_git/EmptyGitRepo"
},
"parameters": {
"gitSource": {
"url": "https://github.com/Microsoft/vscode.git"
}
},
"status": "abandoned",
"detailedStatus": {
"currentStep": 1,
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
],
"errorMessage": "this remote has never connected"
},
"_links": {
"self": {
"href": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/1"
},
"repository": {
"href": "https://mytfsserver/DefaultCollection/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5"
}
},
"url": "https://mytfsserver/DefaultCollection/Test/_apis/git/repositories/0eb02d2e-fff9-4990-bd45-2f7503f5aae5/importRequests/1"
}