Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions content/documentation/admin/actions/codescoring/_index.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: CodeScoring
weight: 100
params:
no_list: true
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: CreateCodeScoringProject
weight: 10
---

CreateCodeScoringProject — создаёт новый проект в системе CodeScoring.
Действие использует CodeScoring API для регистрации проекта с указанными параметрами:
- название проекта,
- URL репозитория,
- ID VCS системы,
- опция автоматического запуска SCA-анализа после клонирования репозитория.

### Пример запроса

```yaml
name: example-project
repository: https://gitlab.example.com/group/project.git
vcs_id: 2
run_sca_after_clone: true
```

### Спецификация запроса

| Название | Обязательность | Описание |
| -------------------- | ---------------- | ---------------------------------------------------------------------------- |
| name | Да | Название проекта в CodeScoring |
| repository | Да | URL репозитория (например, <https://gitlab.example.com/group/project.git>) |
| vcs_id | Да | ID VCS системы в CodeScoring (должен быть больше 0) |
| run_sca_after_clone | Нет | Автоматический запуск SCA-анализа после клонирования репозитория |

### Ответ

В ответе возвращается объект созданного проекта со следующей информацией: идентификатор проекта (pk), название, тип проекта, описание, информация о репозитории, статус проекта, права доступа, лицензия, количество зависимостей и уязвимостей, языки проекта, статус расписания сканирования и даты первого и последнего SCA-сканирования.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: DeleteCodeScoringProject
weight: 20
---

DeleteCodeScoringProject — удаляет проект в системе CodeScoring по его ID.

### Пример запроса

```yaml
id: 1
```

### Спецификация запроса

| Название | Обязательность | Описание |
| ---------- | ---------------- | ----------------------------- |
| id | Да | ID проекта в CodeScoring |
6 changes: 6 additions & 0 deletions content/documentation/admin/actions/debug/_index.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Debug
weight: 110
params:
no_list: true
---
23 changes: 23 additions & 0 deletions content/documentation/admin/actions/debug/debug.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Debug
weight: 10
---

Debug выполняет отладочное действие. Позволяет сделать заданное число циклов ожидания, а также записать произвольные данные в лог и вернуть их в ответе действия.

### Пример запроса

```yaml
sleep_time: 1
sleep_count: 3
extra:
example_key: example_value
```

### Спецификация запроса

| Название | Обязательность | Описание | Значение по умолчанию |
| --------------- | ---------------- | ----------------------------------------------------------------------------------------------------- | ----------------------- |
| sleep_time | Нет | Длительность одного цикла ожидания в секундах | `1` |
| sleep_count | Нет | Число циклов ожидания | `1` |
| extra | Нет | Произвольный набор пар «ключ–значение», который записывается в лог и возвращается в ответе действия | - |
18 changes: 18 additions & 0 deletions content/documentation/admin/actions/debug/fail.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Fail
weight: 20
---

Fail эмулирует ошибку исполнения действия. Предназначен для использования в процессах в качестве отладочного элемента.

### Пример запроса

```yaml
fail: true
```

### Спецификация запроса

| Название | Обязательность | Описание | Значение по умолчанию |
| ---------- | ---------------- | ----------------------------------------------------------------------------------------- | ----------------------- |
| fail | Нет | Если `true`, действие завершается с ошибкой; если `false`, действие завершается успешно | `true` |
6 changes: 6 additions & 0 deletions content/documentation/admin/actions/defectdojo/_index.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: DefectDojo
weight: 90
params:
no_list: true
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: CreateDefectdojoEngagement
weight: 30
---


{{< alert level="info" >}}
Для выполнения действия необходимо наличие токена — API v2 Key пользователя, от имени которого будет запускаться выполнение действия.
{{< /alert >}}

CreateDefectdojoEngagement — создаёт новый engagement в системе DefectDojo. Действие использует DefectDojo API v2.

### Пример запроса

```yaml
name: example engagement
product: '1'
target_start: '2024-06-01'
target_end: '2024-06-30'
lead: '1'
```

### Спецификация запроса

Список полей соответствует официальному API DefectDojo, `/api/v2/engagements`, подробнее — [в документации DefectDojo](https://demo.defectdojo.org/api/v2/oa3/swagger-ui/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: CreateDefectdojoProduct
weight: 10
---


{{< alert level="info" >}}
Для выполнения действия необходимо наличие токена — API v2 Key пользователя, от имени которого будет запускаться выполнение действия.
{{< /alert >}}

CreateDefectdojoProduct — создаёт новый продукт в системе DefectDojo. Действие использует DefectDojo API v2.

### Пример запроса

```yaml
name: example
description: example description
prod_type: 1
```

### Спецификация запроса

Список полей соответствует официальному API DefectDojo, `/api/v2/products`, подробнее — [в документации DefectDojo](https://demo.defectdojo.org/api/v2/oa3/swagger-ui/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: DeleteDefectdojoProduct
weight: 20
---


{{< alert level="info" >}}
Для выполнения действия необходимо наличие токена — API v2 Key пользователя, от имени которого будет запускаться выполнение действия.
{{< /alert >}}

DeleteDefectdojoProduct — удаляет продукт из DefectDojo. Действие использует DefectDojo API v2.

### Пример запроса

```yaml
id: 1
```

### Спецификация запроса

| Название | Обязательность | Описание | Значение по умолчанию |
| ------------- | ---------------- | ---------------------------------------------------- | ------------------------ |
| id | Да | Идентификатор продукта, который необходимо удалить | - |
6 changes: 6 additions & 0 deletions content/documentation/admin/actions/gitlab/_index.ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Gitlab
weight: 20
params:
no_list: true
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: CreateGitlabBranches
weight: 40
---

{{< alert level="info" >}}
Для выполнения действия требуется токен пользователя, от имени которого оно будет выполнено.
{{< /alert >}}

CreateGitlabBranches — создаёт новые ветки в целевом репозитории.

### Пример запроса

```yaml
project_id: '0'
branches:
- branch: new-branch
ref: main
```

### Спецификация запроса

| Название | Обязательность | Описание |
| ----------------- | ---------------- | ----------------------------------------------------------------------------- |
| project_id | Да | Идентификатор проекта, в котором необходимо создать ветки |
| branches | Да | Список создаваемых веток |
| branches.branch | Да | Название новой ветки |
| branches.ref | Да | Название существующей ветки или SHA-хеш коммита |

### Примечание

Действие осуществляет POST-запрос по URL: `/api/v4/projects/:id/repository/branches`. В случае успешного создания проекта GitLab возвращает информацию о созданных ветках.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: CreateGitlabGroupVariables
weight: 80
---

{{< alert level="info" >}}
Для выполнения действия требуется токен пользователя, от имени которого оно будет выполнено.
{{< /alert >}}

CreateGitlabGroupVariables — создаёт переменные (variables) на уровне группы в GitLab.

### Пример запроса

```yaml
group_id: '0'
variables:
- key: EXAMPLE_VARIABLE
value: value
```

### Спецификация запроса

| Название | Обязательность | Описание |
| ----------------- | ---------------- | ------------------------------------------------------------------------------ |
| group_id | Да | Идентификатор группы, в котором необходимо создать переменные |
| variables | Да | Список создаваемых переменных |

Список полей для переменных соответствует официальному GitLab Group-level Variables API, `/groups/:id/variables`, подробнее — [в документации GitLab](https://docs.gitlab.com/api/group_level_variables/#create-variable).

### Примечание

Действие осуществляет POST-запрос по URL: `/api/v4/groups/:id/variables`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: CreateGitlabMergeRequest
weight: 70
---

{{< alert level="info" >}}
Для выполнения действия необходимы учётные данные:

- `password` — пароль (токен) пользователя, от имени которого будет запускаться выполнение действия.
- `username` — имя пользователя, от которого будет запускаться выполнение действия.
{{< /alert >}}

CreateGitlabMergeRequest — создаёт новый Merge Request (MR) в целевом репозитории. В Merge Request добавляются файлы, хранящиеся в репозитории-источнике. Файлы могут содержать переменные, значение которых будет подставлено в момент создания MR.

### Пример запроса

```yaml
source_project_id: '0'
source_project_branch: example
source_project_tag: v1.0.0
target_project_id: '0'
merge_request_spec:
source_branch: example
target_branch: '1'
title: example
additionalIgnoreFiles:
- .ignore
- .example
values:
key1: value1
nested:
enabled: true
subkey: 123
```

### Спецификация запроса

| Название | Обязательность | Описание | Значение по умолчанию |
| ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| source_project_id | Да | Идентификатор проекта, который служит источником для Merge Request | - |
| target_project_id | Да | Идентификатор целевого проекта, в котором будет сформирован Merge Request | - |
| merge_request_spec | Да | Спецификация, соответствующая [GitLab Merge Requests API](https://docs.gitlab.com/ee/api/merge_requests.html#create-mr) | - |
| source_project_tag | Нет | Тег в проекте-источнике, из которого будет сформирован Merge Request. Если не указан, используется ветка в проекте-источнике | - |
| source_project_branch | Нет | Ветка в проекте-источнике, из которой будет сформирован Merge Request | main |
| additionalIgnoreFiles | Нет | Список файлов, содержащих пути для исключения из MR. Заполняется по аналогии с [.templateignore](createrepositoryfromtemplate/#templateignore) | - |
| values | Нет | Переменные, используемые при шаблонизации, в формате `ключ: значение` | - |

### Алгоритм работы

Платформа:

1. Клонирует репозиторий-шаблон для генерации MR по его идентификатору (`source_project_id`). Подробнее — [в «Деталях работы»](createrepositoryfromtemplate/#детали-работы).
1. Считывает файл `values.yaml`, хранящийся в корне репозитория, и определяет переменные по умолчанию для шаблонизации.
1. Считывает переменные, передаваемые при запуске действия, и объединяет (merge) их с переменными из `values.yaml`. Приоритет отдаётся переменным, передаваемым при запуске действия.
1. Считывает файл `.templateignore` и определяет директории и файлы, исключаемые из шаблонизации.
1. Рендерит файлы из шаблонов, учитывая `values.yaml` и переданных в действие переменных.
1. Изменяет удалённый (remote) репозиторий на целевой, согласно его ID (`target_project_id`), и выполняет git push в ветку в проекте-источнике (`source_project_branch`), либо в основную ветку `main`.
1. Создаёт MR согласно заданным настройкам путём отправки POST-запроса в GitLab API.

### Примечание

Действие осуществляет POST-запрос по URL: `/api/v4/projects/:id/merge_requests`.
Loading