Dimitar Yanakiev e98e974e20
Add endpoint for reading and updating site .env file (#564)
* feat(api): Add endpoint for reading site .env file

- Add GET /api/projects/{project}/servers/{server}/sites/{site}/env endpoint
- Add feature tests with SSH mocking

* added updating env

* fix coding style

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
2025-04-05 19:59:57 +02:00

429 lines
12 KiB
YAML

name: source-controls
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Zella Robel","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Jairo Williamson","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}],"links":{"first":"\/?page=1","last":"\/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer e3f4ag8hkb5vZcDadPEV661'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The provider'
required: true
example: gitlab
type: string
enumValues:
- gitlab
- github
- bitbucket
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the storage provider.'
required: true
example: molestias
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://www.white.com/aperiam-dolor-nemo-qui-rerum-quod-quas'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: consectetur
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'y*P4_]ZdjE_:'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: gitlab
name: molestias
token: in
url: 'https://www.white.com/aperiam-dolor-nemo-qui-rerum-quod-quas'
username: consectetur
password: 'y*P4_]ZdjE_:'
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Miss Claudine Goyette","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer DfegP56vkEa364Zbhda8V1c'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Mona Stark","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer ePc6fb65vh1Z4aakE3Dgd8V'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the storage provider.'
required: true
example: non
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: sunt
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: natus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'A^">*m{p]DI'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: true
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: non
token: sunt
url: 'https://www.frami.org/ex-at-minus-rerum-quo-minus-ea'
username: natus
password: 'A^">*m{p]DI'
global: true
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Neha Little","provider":"github","created_at":"2025-04-05T17:48:03.000000Z","updated_at":"2025-04-05T17:48:03.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer v3f6aaPk61Ze8hVdDbE5g4c'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer fgk61vD68E4cZhP3bV5adea'
controller: null
method: null
route: null
custom: []