Skip to content

Docs_ru

Nikita Stepochkin edited this page Mar 27, 2019 · 18 revisions

Redink - система анализа схожести исходного кода (анализа на плагиат) решений задач по программированию в git-репозиториях.

Система предназначена для сравнения содержимого файлов с исходным кодом, который находится в форках репозитория, подключенного к этой системе. Поддерживаются github, gitlab и bitbucket репозитории.

Структура rest запросов доступна по адресу /swagger-ui.html, graphql запросов - по адресу /graphiql.

Общее описание процесса работы с системой

  1. Через api системы создается запись о репозитории и его параметрах.

После создания записи происходит загрузка содержимого всех имеющихся веток репозитория и содержимого веток, из которых созданы пулл-реквесты.

  1. В настройках репозитория данного git-сервиса подключается webhook с адресом вида [публичный url-адрес сервера]/webhook/[имя git-сервиса в нижнем регистре], например http://0.0.0.0:8080/webhook/github, и с подключенными событиями push и pull request.

С этого момента все push события в основном репозитории будут инициировать загрузку содержимого измененной ветки в локальное хранилище, все pull request события - загрузку содержимого ветки форка репозитория, из которой создан пулл-реквест.

  1. Через api системы отправляется запрос на анализ ветки репозитория. Под веткой подразумевается набор веток, состоящий из ветки основного репозитория с данным названием и веток fork-репозиториев с тем же названием, из которых созданы пулл-реквесты в основной репозиторий.

Отчет об анализе возвращается в ответе на запрос, либо пересылается на url-адрес, указанный в запросе на анализ.

Параметры репозитория

Параметр Описание Значения
name Полное имя репозитория [имя_владельца/название]
gitService Git-сервис репозитория GITHUB, BITBUCKET, GITLAB
analyser Используемый анализатор MOSS, JPLAG
language Язык анализа JAVA, PYTHON, CPP, CSHARP, ...
branches Имена веток, содержимое которых загружается в систему, и которые подвергаются периодическому анализу
analysisMode Уровень полноты парсинга результатов анализа LINK, PAIRS, FULL
filePatterns Регулярные выражения для имен файлов
autoCloningEnabled Должны ли загружаться исходные файлы в систему автоматически true, false
periodicAnalysis Должен ли выполняться периодический анализ true, false
periodicAnalysisDelay Раз в сколько минут выполняется периодический анализ

Параметры анализа

Параметр Описание Значения
name Полное имя репозитория [имя_владельца/название]
gitService Git-сервис репозитория GITHUB, BITBUCKET, GITLAB
branch Имя анализируемой ветки
analyser Используемый анализатор MOSS, JPLAG
language Язык анализа JAVA, PYTHON, CPP, CSHARP, ...
mode Уровень полноты парсинга результатов анализа LINK, PAIRS, FULL
responseUrl URL-адрес, по которому будет отправлен результат анализа

По умолчанию используются параметры репозитория.

Clone this wiki locally