VISO TRUST
официальныйПолучайте доступ и управляйте своей програм
Что можно делать с VISO TRUST MCP?
- Поиск в каталоге поставщиков по домену — Найдите поставщика в VISO TRUST с помощью
search_vendor_directory, используя URL или доменное имя. - Управление отношениями с третьими сторонами — Создавайте, обновляйте, ищите, подключайте, отключайте или архивируйте отношения с поставщиками с помощью таких инструментов, как
create_relationship,update_relationshipиonboard_relationship. - Запуск и отслеживание оценок поставщиков — Начните оценку с помощью
create_assessment, получите результаты черезget_assessmentи обновите сроки или настройки последующих действий. - Просмотр активности журнала аудита — Запрашивайте события аудита пользователя или полные события аудита с помощью
get_user_audit_log_eventsиget_audit_log_eventsза заданный период времени. - Импорт внешних отчетов разведки — Отправляйте отчеты BitSight, SecurityScorecard или Recorded Future, используя
create_bitsight_intelligence_report,create_security_scorecard_intelligence_reportилиcreate_recorded_future_intelligence_report. - Настройка вебхуков — Создавайте, обновляйте, удаляйте или проверяйте конфигурации вебхуков с помощью
create_webhook_configuration,update_webhook_configurationиget_all_webhooks.
Документация
VISO TRUST MCP-сервер
Сервер Model Context Protocol (MCP) для интеграции возможностей API VISO TRUST с ИИ-ассистентами.
Размещенный удаленный сервер
VISO TRUST предоставляет управляемый экземпляр этого MCP-сервера, поэтому вам не нужно ничего собирать, запускать или размещать самостоятельно, чтобы начать работу:
https://mcp.visotrust.com/mcp
Подключите любой MCP-клиент к этой конечной точке, используя транспорт Streamable HTTP, и аутентифицируйтесь с помощью вашего API-токена VISO TRUST. Информацию о том, как сгенерировать API-токен, см. в документации поддержки VISO TRUST.
Пример конфигурации клиента:
{
"mcpServers": {
"viso-mcp": {
"type": "streamable-http",
"url": "https://mcp.visotrust.com/mcp",
"headers": {
"Authorization": "Bearer <your-api-token>"
}
}
}
}
Чтобы протестировать размещенную конечную точку с помощью MCP Inspector, выполните npx @modelcontextprotocol/inspector, установите Transport Type в Streamable HTTP и используйте URL-адрес, указанный выше.
Оставшаяся часть этого документа посвящена самостоятельному запуску сервера (локально или в вашей собственной инфраструктуре).
Требования
- Java 21+
- Gradle
- Docker (опционально для контейнеризованного развертывания)
- MCP Inspector (опционально для тестирования)
Конфигурация
Конфигурация API VISO TRUST
Для API VISO TRUST можно настроить следующие свойства:
visotrust.api.base-url: Базовый URL-адрес API VISO TRUST (по умолчанию: http://localhost:8080)visotrust.api.token: Ваш API-токен с платформы VISO TRUST (обязательно)visotrust.api.timeout: Тайм-аут запроса к API в миллисекундах (по умолчанию: 30000)visotrust.api.connect-timeout: Тайм-аут соединения с API в миллисекундах (по умолчанию: 5000)
Информацию о том, как сгенерировать API-токен для переменной окружения visotrust.api.token, см. в документации поддержки VISO TRUST.
Профили приложения
Это приложение поддерживает профили Spring Boot для включения различных конфигураций в зависимости от сценариев развертывания.
Профиль Remote
Профиль remote предназначен для удаленной поддержки MCP через транспорт Streamable HTTP. Этот профиль запускает сервер как веб-приложение, чтобы он мог взаимодействовать с удаленными клиентами по HTTP. (Streamable HTTP заменяет устаревший транспорт SSE; здесь он настроен в режиме без сохранения состояния.)
Ключевые отличия профиля remote:
- Запускается как сервлетное веб-приложение (Tomcat) на порту
3001вместо стандартного ввода-вывода - Предоставляет конечную точку MCP по адресу
POST /mcp(Streamable HTTP) - Работает в режиме без сохранения состояния — отсутствует состояние сервера для каждой сессии, что позволяет горизонтально масштабироваться за балансировщиком нагрузки без необходимости привязки сессий
- Оптимизированные настройки сервера для подключений удаленных клиентов
- Расширенное логирование для распределенной отладки
Примечание: Клиенты подключаются к единственной конечной точке Streamable HTTP
…/mcp. Устаревшие конечные точки SSE (/sse+/mcp/message) больше не обслуживаются.
Как активировать профиль remote:
При запуске с Java напрямую:
java -jar viso-mcp-server-<version>.jar --spring.profiles.active=remote
При запуске с Gradle:
./gradlew bootRun --args="--spring.profiles.active=remote"
При использовании Docker:
docker run -i --rm \
-e VISOTRUST_API_TOKEN=<your-api-token> \
-e SPRING_PROFILES_ACTIVE=remote \
viso-mcp-server
Когда использовать профиль remote:
- При развертывании MCP-сервера на удаленном сервере или в облачной среде
- Когда клиенты будут подключаться через Streamable HTTP, а не напрямую через stdio
- Когда требуется расширенное логирование и мониторинг для распределенных развертываний
- При интеграции с веб-ИИ-ассистентами, которые подключаются через Streamable HTTP
Для локальной разработки и прямой связи через stdio используйте профиль по умолчанию (указывать профиль не нужно).
Установка
Быстрая установка
Нажмите одну из кнопок ниже, чтобы установить VISO MCP Server в VS Code:
Ручная настройка в VS Code
Добавьте следующий блок JSON в файл пользовательских настроек (JSON) в VS Code. Это можно сделать, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (JSON).
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
}
При желании вы можете добавить аналогичный пример (т.е. без ключа mcp) в файл с именем .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими.
{
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
Использование с Claude Desktop и другими MCP-клиентами
Конфигурация Docker
{
"mcpServers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "VISOTRUST_API_TOKEN",
"-e", "VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
Конфигурация Java
{
"mcpServers": {
"viso-mcp": {
"command": "java",
"args": [
"-jar",
"viso-mcp-server-<version>.jar",
"--port",
"8080",
"--host",
"localhost"
],
"env": {
"JAVA_TOOL_OPTIONS": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
Примечание: Переменная окружения JAVA_TOOL_OPTIONS используется для установки параметров JVM для удаленной отладки. Адрес и порт можно изменить по мере необходимости.
💻 Разработка
Настройка Docker
Сборка образа Docker
docker build -t viso-mcp-server .
Запуск контейнера Docker
docker run -i --rm -e VISOTRUST_API_TOKEN=<your-api-token> viso-mcp-server
Отладка
Установка MCP Inspector
npm -g install @modelcontextprotocol/inspector
Запуск MCP Inspector для тестирования
- Сборка JAR-файла MCP-сервера
./gradlew bootJar
- Запуск MCP Inspector
npx @modelcontextprotocol/inspector \
-e JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=\*:5005 \
-e VISOTRUST_API_TOKEN=<your-api-token> \
java -jar build/libs/viso-mcp-server-<version>.jar \
--port 8080 --host localhost
Замените <version> на текущую версию проекта (например, 1.0.0 или версию из последнего релиза).
Пайплайн CI/CD
В этом проекте используются GitHub Actions для непрерывной интеграции и развертывания. Рабочий процесс включает следующие задания:
Линтинг
Проверяет форматирование кода с помощью Spotless:
./gradlew spotlessCheck
Сборка
Собирает приложение и создает JAR-файл:
./gradlew build
Публикация
При создании нового релиза:
- Обновляет версию проекта в build.gradle в соответствии с тегом релиза
- Загружает JAR-файл в GitHub-релиз с версией из тега релиза
- Собирает и отправляет образ Docker в Docker Hub с тегами:
latest- Тег релиза (например,
v1.0.0)
Необходимые секреты для публикации
Чтобы включить публикацию в Docker Hub, добавьте эти секреты в ваш репозиторий GitHub:
DOCKERHUB_USERNAME: Ваше имя пользователя Docker HubDOCKERHUB_TOKEN: Ваш токен доступа Docker Hub
🛠️ Инструменты
В этом разделе представлена документация по инструментам, предоставляемым VISO MCP Server. Каждый инструмент имеет определенное назначение, входные параметры и формат вывода.
Оценки (Assessments)
get_assessment - Получить оценку по ее ID
- id: ID оценки (число, обязательно)
Возвращает подробную информацию о конкретной оценке.
get_assessment_summary - Получить сводку по оценке по ее ID
- id: ID оценки (число, обязательно)
Возвращает сводные данные по конкретной оценке.
create_assessment - Запустить оценку для существующего взаимоотношения
- relationshipId: ID взаимоотношения, для которого создается оценка (число, обязательно)
- recipientEmail: Адрес электронной почты получателя оценки (строка, опционально)
- recipientFirstName: Имя получателя оценки (строка, опционально)
- recipientLastName: Фамилия получателя оценки (строка, опционально)
- publicDocumentUrls: URL-адреса публичных документов для включения в оценку (string[], опционально)
- followupType: Тип последующих действий (строковое перечисление, опционально)
- followupRiskThreshold: Порог уровня риска, при котором запускаются последующие действия (строковое перечисление, опционально)
- followupTimeline: Сроки для последующих действий (строковое перечисление, опционально)
- collectionTimeline: Сроки для завершения отправки оценки поставщиком (строковое перечисление, опционально)
- noVendorResponseAction: Действие при отсутствии ответа от поставщика (строковое перечисление, опционально)
- aiProcessingOnly: Обрабатывать только с помощью ИИ без проверки человеком (логическое, опционально)
- requestedAuditTypes: Типы аудитов, запрашиваемые для этой оценки (string[], опционально)
Возвращает детали созданной оценки.
update_assessment_expiration_date - Обновить крайний срок, к которому поставщик должен предоставить ответ по оценке
- id: ID оценки (число, обязательно)
- expirationDate: Новая дата/время истечения срока, ISO-8601 со смещением; должна быть в будущем (строка, обязательно)
Возвращает сообщение с подтверждением.
update_assessment_followup - Обновить конфигурацию последующих действий для оценки
- id: ID оценки (число, обязательно)
- followupType: Тип последующих действий (строковое перечисление, обязательно)
- followupRiskThreshold: Порог риска, при достижении или превышении которого должна запускаться последующая оценка (строковое перечисление, опционально)
- followupTimeline: Сроки последующих действий (строковое перечисление, опционально)
Возвращает сообщение с подтверждением.
Журналы аудита (Audit Logs)
get_user_audit_log_events - Получить события журнала аудита в рамках пользователя для вашей организации
- start: Дата/время начала запроса, ISO-8601 со смещением (строка, обязательно)
- end: Дата/время окончания запроса, ISO-8601 со смещением (строка, обязательно)
- eventTypes: Опциональный набор типов событий для фильтрации (например,
USER_LOGGED_IN); оставьте пустым для всех (string[], опционально)
Возвращает список событий журнала аудита пользователя, ограниченный 500 записями.
get_audit_log_events - Получить отфильтрованные события журнала аудита (события пользователя, организации, оценки и взаимоотношений)
- start: Дата/время начала запроса, ISO-8601 со смещением (строка, обязательно)
- end: Дата/время окончания запроса, ISO-8601 со смещением (строка, обязательно)
- eventTypes: Опциональный набор типов событий для фильтрации (например,
ASSESSMENT_COMPLETED,RELATIONSHIP_CREATED); оставьте пустым для всех (string[], опционально)
Возвращает полиморфные записи событий журнала аудита. Каждый элемент содержит как минимум auditEventType и dateTime.
Бизнес-кейсы (Business Cases)
get_all_business_cases - Получить все доступные бизнес-кейсы для вашей организации
Параметры не требуются.
Возвращает список всех бизнес-кейсов, доступных для вашей организации.
Типы данных (Data Types)
get_all_datatypes - Получить все доступные типы данных для вашей организации
Параметры не требуются.
Возвращает список всех типов данных, доступных для вашей организации.
Справочник поставщиков (Vendor Directory)
search_vendor_directory - Найти поставщика в справочнике поставщиков VISO TRUST по URL или домену
- urlOrDomain: URL-адрес или доменное имя для поиска, например,
example.com(строка, обязательно)
Возвращает основные метаданные поставщика (название, домашняя страница, описание, фавикон, известные домены).
Взаимоотношения (Relationships)
get_all_relationships - Получить список всех взаимоотношений и деталей их оценок
Параметры не требуются.
Возвращает информацию о сторонних поставщиках, включая статус их оценки, уровни риска и контактные данные.
get_relationship_by_id - Получить конкретное взаимоотношение и детали его оценки по ID
- id: ID взаимоотношения (число, обязательно)
Возвращает подробную информацию о стороннем поставщике, включая статус оценки, уровни риска и контактные данные.
get_relationship_assessment_history - Получить историю оценок для взаимоотношения
- id: ID взаимоотношения (число, обязательно)
Возвращает список оценок, связанных с указанным взаимоотношением.
create_relationship - Создать новое взаимоотношение со сторонним поставщиком
- name: Название взаимоотношения/поставщика (строка, обязательно)
- homepage: URL-адрес домашней страницы поставщика (строка, обязательно)
- businessOwnerEmail: Адрес электронной почты владельца бизнеса (строка, обязательно)
- businessOwnerFirstName: Имя владельца бизнеса (строка, опционально)
- businessOwnerLastName: Фамилия владельца бизнеса (строка, опционально)
- description: Описание взаимоотношения/поставщика (строка, опционально)
- contextTypes: Список типов бизнес-контекста для этого взаимоотношения (object[], опционально)
- dataTypes: Список типов данных, обрабатываемых в этом взаимоотношении (object[], опционально)
- tags: Список тегов для категоризации этого взаимоотношения (string[], опционально)
- thirdPartyContact: Контактные данные представителя стороннего поставщика (объект, опционально)
Возвращает детали созданного взаимоотношения.
create_relationship_by_domain - Создать новое взаимоотношение, используя только домен поставщика
- domain: Домен поставщика, например,
visotrust.com(строка, обязательно) - vendorName: Название поставщика (строка, обязательно)
- product: Продукт, предлагаемый поставщиком (строка, опционально)
- description: Описание взаимоотношения с поставщиком (строка, опционально)
Возвращает детали созданного взаимоотношения.
update_relationship - Обновить существующие отношения со сторонним поставщиком
- id: Идентификатор отношения (число, обязательно)
- name: Название отношения/поставщика (строка, обязательно)
- homepage: URL домашней страницы поставщика (строка, необязательно)
- description: Описание отношения/поставщика (строка, необязательно)
- contextTypes: Список типов бизнес-контекста (object[], необязательно)
- dataTypes: Список типов данных, обрабатываемых в рамках этих отношений (object[], необязательно)
- businessOwnerEmail: Адрес электронной почты владельца бизнеса (строка, необязательно)
- businessOwnerFirstName: Имя владельца бизнеса (строка, необязательно)
- businessOwnerLastName: Фамилия владельца бизнеса (строка, необязательно)
- tags: Список тегов (string[], необязательно)
Возвращает обновленные сведения об отношении.
partially_update_relationship - Частично обновить существующее отношение
Принимает те же поля, что и update_relationship. Изменяются только поля, предоставленные в запросе; остальные поля остаются без изменений.
Возвращает обновленные сведения об отношении.
search_relationships - Поиск отношений по доменному имени или названию поставщика
- domains: Список доменных имен для поиска (string[], обязательно)
- name: Название поставщика/отношения для поиска (строка, обязательно)
Возвращает список подходящих отношений с деталями их оценки.
create_tags - Создать новые теги для категоризации отношений
- tags: Список названий тегов для создания (string[], обязательно)
Возвращает список всех тегов, включая только что созданные.
update_third_party_contact - Обновить контактные данные стороннего поставщика
- relationshipId: Идентификатор отношения (число, обязательно)
- email: Контактный email (строка, обязательно)
- firstName: Имя контактного лица (строка, обязательно)
- lastName: Фамилия контактного лица (строка, обязательно)
Возвращает обновленные сведения об отношении.
onboard_relationship - Подключить отношение, опционально с кратким описанием согласования и настройками управления жизненным циклом
- id: Идентификатор отношения (число, обязательно)
- approvalSummary: Необязательное краткое описание согласования, записанное при подключении (строка, необязательно)
- lifecycleManagementUpdateRequest: Необязательные настройки управления жизненным циклом (объект, необязательно)
- artifactUpdateSettings.artifactUpdateType: Тип обновления артефакта (строковое перечисление)
- recertificationSettings.recertificationType: Тип повторной сертификации (строковое перечисление)
- recertificationSettings.recertificationDate: Дата/время следующей повторной сертификации, ISO-8601 со смещением (строка)
- recertificationSettings.reviewFrequency:
THREE_YEARS,TWO_YEARS,ANNUAL,SEMIANNUALилиQUARTERLY(строковое перечисление)
Возвращает сведения о подключенном отношении.
offboard_relationship - Отключить отношение
- id: Идентификатор отношения (число, обязательно)
Возвращает сведения об отключенном отношении.
archive_relationship - Архивировать отношение
- id: Идентификатор отношения (число, обязательно)
Возвращает сведения об архивированном отношении.
Вебхуки
get_all_webhooks - Получить все вебхуки
Параметры не требуются.
Возвращает список всех конфигураций вебхуков.
get_webhook - Получить конфигурацию вебхука по идентификатору
- id: Идентификатор вебхука (число, обязательно)
Возвращает сведения о конкретной конфигурации вебхука.
create_webhook_configuration - Создать конфигурацию вебхука
- request: Параметры создания вебхука (объект, обязательно)
- url: URL вебхука (строка, обязательно)
- secret: Секрет вебхука (строка, обязательно)
- eventTypes: Типы событий, инициирующих вебхук (string[], обязательно)
- serviceType: Тип сервиса для вебхука (строка, обязательно)
Возвращает созданную конфигурацию вебхука.
update_webhook_configuration - Обновить конфигурацию вебхука
- request: Параметры обновления вебхука (объект, обязательно)
- id: Идентификатор вебхука (число, обязательно)
- url: URL вебхука (строка, необязательно)
- secret: Секрет вебхука (строка, необязательно)
- eventTypes: Типы событий, инициирующих вебхук (string[], необязательно)
- serviceType: Тип сервиса для вебхука (строка, необязательно)
Возвращает обновленную конфигурацию вебхука.
delete_webhook_configuration - Удалить конфигурацию вебхука
- id: Идентификатор вебхука (число, обязательно)
Удаляет указанную конфигурацию вебхука.
Отчеты аналитики
create_bitsight_intelligence_report - Создать новый отчет аналитики BitSight
- request: Параметры отчета BitSight (объект, обязательно)
- vendorDomain: Основное доменное имя поставщика (строка, обязательно)
- reportDate: Дата/время создания отчета (строка ISO 8601, обязательно)
- link: Необязательная ссылка на интерфейс провайдера (строка, необязательно)
- guid: GUID BitSight для сущности (строка, обязательно)
- customId: Пользовательский идентификатор из BitSight (строка, необязательно)
- name: Отображаемое имя сущности BitSight (строка, необязательно)
- description: Описание сущности BitSight (строка, необязательно)
- primaryDomain: Основной домен для сущности BitSight (строка, необязательно)
- ratingRange: Диапазон рейтинга BitSight (строка, необязательно)
- ratingColor: Цвет рейтинга BitSight (строка, необязательно)
- confidence: Уровень уверенности рейтинга BitSight (строка, необязательно)
Возвращает созданный отчет аналитики.
create_security_scorecard_intelligence_report - Создать новый отчет аналитики SecurityScorecard
- request: Параметры отчета SecurityScorecard (объект, обязательно)
- vendorDomain: Основное доменное имя поставщика (строка, обязательно)
- reportDate: Дата/время создания отчета (строка ISO 8601, обязательно)
- link: Необязательная ссылка на интерфейс провайдера (строка, необязательно)
- grade: Буквенная оценка SecurityScorecard (строка, обязательно)
- domain: Домен, связанный с сущностью системы показателей (строка, необязательно)
- score: Числовая оценка от SecurityScorecard (число, необязательно)
Возвращает созданный отчет аналитики.
create_recorded_future_intelligence_report - Создать новый отчет аналитики Recorded Future
- request: Параметры отчета Recorded Future (объект, обязательно)
- vendorDomain: Основное доменное имя поставщика (строка, обязательно)
- reportDate: Дата/время создания отчета (строка ISO 8601, обязательно)
- entityType: Тип сущности Recorded Future, например
Company(строка, обязательно) - entity: Идентификатор сущности Recorded Future (строка, обязательно)
- riskScore: Числовая оценка риска (число, обязательно)
- riskLevel: Метка уровня риска, например
Critical/High/Medium/Low(строка, обязательно) - link: Необязательная ссылка на отчет в интерфейсе провайдера (строка, необязательно)
- firstSeen: Самая ранняя дата наблюдения сущности, ISO 8601 (строка, необязательно)
- lastSeen: Самая поздняя дата наблюдения сущности, ISO 8601 (строка, необязательно)
- triggeredRuleCount: Количество сработавших правил Recorded Future (число, необязательно)
- maxRuleCount: Максимальное количество оцененных правил Recorded Future (число, необязательно)
- summary: Необязательный текст резюме от Recorded Future (строка, необязательно)
- criticalityLabel: Метка критичности Recorded Future для сущности (строка, необязательно)
Возвращает созданный отчет аналитики.
get_intelligence_reports_by_vendor - Получить все отчеты аналитики по поставщику
- vendorDomain: Основное доменное имя поставщика (строка, обязательно)
Возвращает список отчетов аналитики для указанного поставщика.
get_latest_intelligence_report - Получить последний отчет аналитики по поставщику из определенного источника
- vendorDomain: Основное доменное имя поставщика (строка, обязательно)
- source: Провайдер аналитики (строковое перечисление:
BITSIGHT,SECURITY_SCORECARDилиRECORDED_FUTURE, обязательно)
Возвращает последний отчет аналитики для указанного поставщика и источника.
Пользователи
get_all_users - Получить всех пользователей в вашей организации
- page: Страница результатов для получения (число, необязательно; по умолчанию 0)
- size: Количество записей на странице (число, необязательно; по умолчанию 20)
- sort: Критерии сортировки в формате: свойство(,asc|desc) (строка, необязательно)
Возвращает постраничный список пользователей.
get_user_by_email - Получить пользователя по email
- email: Адрес электронной почты пользователя (строка, обязательно)
Возвращает сведения о пользователе.
create_user - Создать нового пользователя
- request: Параметры создания пользователя (объект, обязательно)
- email: Адрес электронной почты нового пользователя (строка, обязательно)
- firstName: Имя нового пользователя (строка, обязательно)
- lastName: Фамилия нового пользователя (строка, обязательно)
Возвращает созданного пользователя.
Форматирование кода
В этом проекте используется Spotless с Google Java Format для форматирования кода. Pre-commit хук настраивается автоматически для обеспечения единообразного стиля кода.
Настройка
После клонирования репозитория pre-commit хук будет автоматически настроен при запуске любой команды Gradle.
Ручное форматирование
Для ручного форматирования всех файлов:
./gradlew spotlessApply
Чтобы проверить, правильно ли отформатированы файлы:
./gradlew spotlessCheck
Если pre-commit хук отклоняет ваш коммит из-за проблем с форматированием, просто запустите ./gradlew spotlessApply, чтобы исправить форматирование, а затем попробуйте выполнить коммит снова.
Лицензия
Этот проект лицензирован под MIT License — подробности см. в файле LICENSE.