Интеграция с github/gitlab

From EjudgeWiki
Revision as of 09:48, 23 December 2022 by Cher (talk | contribs) (...)

Навигация: Главная страница/Система ejudge/Использование/Интеграция с github/gitlab

Поддерживается с версии 3.10.0.

Система ejudge поддерживает хранение исходного кода решений участников в системах контроля версий github или gitlab. При определенных событиях в репозитории (например, при событии push) система контроля версий обращается по заранее настроенному URL (webhook), уведомляя ejudge, что можно тестировать очередную версию исходного кода. Затем ejudge выполняет загрузку исходного кода из репозитория с помощью git clone, компиляцию и тестирование этого кода.

Интеграция со стороны участника

Настройка интеграции с github для пользователя

Настройка интеграции с gitlab для пользователя

Чтобы ejudge мог склонировать исходный код из репозитория, потребуется ключ ssh. Можно использовать существующий, который используется для других целей, но предпочтительнее сгенерировать новую пару из приветного и публичного ключа специально для использования ejudge. Такой ключ называется deploy key.

Генерация ключа

Сгенерировать пару ключей можно с помощью команды ssh-keygen -t ed25519 -f ej_deploy. Passphrase нужно оставить пустым. При исполнении команды на стандартный поток вывода будет примерно следующий вывод:

$ ssh-keygen -t ed25519 -f ej_deploy
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ej_deploy
Your public key has been saved in ej_deploy.pub
The key fingerprint is:
SHA256:MZcQPKClDzn4AcM+S2tBiIJLgWKMciwxK1tj38nMs9k cher@fedora
The key's randomart image is:
+--[ED25519 256]--+
|O*+   ooo.       |
|@*=+ =  o. .     |
|O*= B   o.o      |
|o+=+ X . +       |
|.. =o O S        |
|  +    =         |
| .    o E        |
|                 |
|                 |
+----[SHA256]-----+

В итоге в текущем каталоге появятся файл ej_deploy.pub — это ппубличный ключ, и файл ej_deploy — это приватный ключ. Публичный ключ нужно добавить в список deploy keys в системе github или gitlab.

Добавление deploy key в github

Для интеграции с github нужно сгенерированный публичный ключ добавить в список deploy keys проекта на github.

Для добавления ключа на странице проекта перейдите в раздел "Settings".

[1]

В разделе "Settings" выберите раздел "Deploy keys".

[2]

В разделе "Deploy keys" нажмите на "Add deploy keys".

[3]

В поле "Key" скопируйте публичный ключ, то есть содержимое файла ej_deploy.pub.

Нажмите кнопку "Add Key".