# Accessing AIQ Repository Configuration via REST APIs

This is a list of useful repository related REST APIs,

## getRepositoryNamesByUser

### Endpoint

rest/preferences/getRepositoryNamesByUser

### Description

Returns an array with all repository configuration names from current logged in user.

### Request parameters | payload

N/A

### Response

`[ "repoName1", "repoName2", "repoName3" ]`   
or empty array if no repo configs exists.  
  
`[ ]`

## getRepositoryByUser

### Endpoint

`rest/preferences/getRepositoryByUser`

### Description

Returns JSON object with details of the a repo given its name or empty JSON if no configuration with provided name is found.

### Request parameters | payload

`?name=repoName1`

### Response

Success

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22proxypor">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{     "proxyPort": 0,<br></br>     "commitMessage": "Appvance Commit",<br></br>     "auth": "Password",<br></br>     "proxyServer": "",<br></br>     "proxyUsername": "",<br></br>     "name": "repoName1",<br></br>     "proxyPassword": "",<br></br>     "proxyType": "defatult",<br></br>     "type": "GIT",<br></br>     "branch": "main",<br></br>     "url": "https://gitlab.com/appvnc/repomemo/",<br></br>     "username": "appvnc"<br></br>}
```

 </div> </div>Error (repoName1 was not found)

<div class="codeSnippet" id="bkmrk-copy-%7B-%7D">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{ }
```

 </div> </div>## getRepositoryStatus

### Endpoint

`rest/preferences/getRepositoryStatus`

### Description

Returns JSON object with status of the a repo given its name.

### Request parameters | payload

`?name=repoName1`

### Response

Success:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timestam">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{     "timeStamp": "2023/01/30 19:59:52",<br></br>     "stack": "",<br></br>     "status": "WORKING"<br></br>}
```

 </div> </div>Error:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timestam-1">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{     "timeStamp": "0",<br></br>     "stack": "Repository not found",<br></br>     "status": "ERROR"<br></br>}
```

 </div> </div>## pullRepository

### Endpoint

`rest/preferences/pullRepository`

### Description

If repo is found, it triggers a git pull action on the repo and then executes a getRepositoryStatus returning the same JSON as that call.

### Request parameters | payload

`?name=repoName1`

### Response

Success:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timestam-2">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{     "timeStamp": "2023/01/30 19:59:52",<br></br>     "stack": "",<br></br>     "status": "WORKING"<br></br>}
```

 </div> </div>On error:

<div class="codeSnippet" id="bkmrk-copy-%7B-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timest">[Copy](javascript:void(0);)<div class="codeSnippetCaption">{

 </div><div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>     "timeStamp": "2023/01/30 19:59:52",<br></br>     "stack": "Repository not found",<br></br>     "status": "ERROR"<br></br>}
```

 </div> </div>## getBranches

### Endpoint

`rest/preferences/getBranches`

### Description

Returns the names of all the existing branches in the remote repository

### Request parameters | payload

`?name=repoName1`

### Response

Success:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timestam-3">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>     "timeStamp": "0",<br></br>     "stack": "",<br></br>     "branches": [<br></br>     "main",<br></br>     "performanceFolder"<br></br>     ],<br></br>     "status": "OK"<br></br>}
```

 </div> </div>On Error:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22timestam-4">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>     "timeStamp": "0",<br></br>     "stack": "Repository not found",<br></br>     "status": "ERROR"<br></br>}
```

 </div> </div>## saveRepository

### Endpoint

`rest/preferences/saveRepository`

### Description

Saves new or updates repository configuration

Possible error messages:  
"Repository with given name exists"  
"Incorrect credentials."

### Request parameters | payload

<div class="codeSnippet" id="bkmrk-copy-%7B%22type%22%3A%22git%22%2C%22">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>"type":"GIT",<br></br>"name":"repoName1",<br></br>"url":"https://gitlab.net/ac/repo.git",<br></br>"username":"user@example.com",<br></br>"ssh":"",<br></br>"auth":"Password",<br></br>"password":"Wkdz!vxh14x9",<br></br>"branch":"",<br></br>"commitMessage":"",<br></br>"proxyServer":"",<br></br>"proxyPort":0,<br></br>"proxyUsername":"",<br></br>"proxyPassword":"",<br></br>"proxyType":"defatult"<br></br>}
```

 </div> </div>### Response

Success:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22message%22">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>     "message": "Repository successfully saved.",<br></br>     "status": "success"<br></br>}
```

 </div> </div>On Error:

<div class="codeSnippet" id="bkmrk-copy-%7B%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%22message%22-1">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False">```
{<br></br>     "message": "Error: check your repository configuration.",<br></br>     "status": "error"<br></br>}
```

 </div> </div>## deleteRepository

### Endpoint

`rest/preferences/deleteRepository`

### Description

Deletes a repository configuration named repoName1 for current user.

### Request parameters | payload

`?repositoryName=repoName1`

### Response

Success:

`done true`

On Error:

`done false`

<div id="bkmrk-last-updated%3A-july-0">---

Last updated: <span class="mc-variable General.NewDateTimeVariable variable">July 07, 2023</span>

If you have any feedback on this topic, please contact us at <documentation@appvance.ai>

</div>