🌐 GitVerse Landings

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ содСрТит Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² GitVerse β€” статичСскиС ΠΈ динамичСскиС Π²Π΅Π±-страницы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для дСмонстрации возмоТностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, привлСчСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ докумСнтирования ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„ΠΈΡ‡.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ построСн Π½Π° соврСмСнном стСкС (Next.js / React), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SSR, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для SEO ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ.

πŸš€ Быстрый старт

cd landings
npm install
npm run dev

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ доступно ΠΏΠΎ адрСсу: http://localhost:3000

πŸ§ͺ ВСстированиС

Запуск unit-тСстов:

npm test --prefix landings

ГСнСрация ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ:

npm run test:coverage --prefix landings

πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с систСмой автоматичСского security-Π°ΡƒΠ΄ΠΈΡ‚Π°:

πŸ”„ CI/CD

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ GitVerse CI/CD для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ сборки, тСстирования, бСзопасности ΠΈ дСплоя. ВсС pipeline’ы описаны Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ .gitverse/workflows/.

ДоступныС workflows

Workflow Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ ОписаниС
build.yaml workflow_dispatch Π‘ΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚ Docker-ΠΎΠ±Ρ€Π°Π· ΠΈΠ· distribution/Dockerfile ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² GitVerse Registry (gitverse.ru/gitverse-demo/landings:tag).
deploy.yaml workflow_dispatch с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ version ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π· ΠΈΠ· GitVerse Registry Π² Evolution Artifact Registry (cloud.ru) ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Evolution Container Apps.
pr_check_security.yaml pull_request, workflow_dispatch ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ PR запускаСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ security-Π°ΡƒΠ΄ΠΈΡ‚:
β€’ ГСнСрация SBOM (CycloneDX)
β€’ Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ уязвимостСй (Trivy, OSV)
β€’ Поиск сСкрСтов (Gitleaks)
β€’ Анализ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Job Summary.
unit_tests.yaml pull_request, workflow_dispatch ЗапускаСт unit-тСсты с ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ node_modules для ускорСния. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈ сохраняСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚.
release.yaml push Π½Π° Ρ‚Π΅Π³ (*) Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ Ρ€Π΅Π»ΠΈΠ·Π½ΡƒΡŽ сборку:
β€’ Π‘ΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π· Π² GitVerse Registry
β€’ ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π· с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cosign (довСрСнная подпись)
β€’ Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ Ρ€Π΅Π»ΠΈΠ· Ρ‡Π΅Ρ€Π΅Π· GitVerse API с changelog ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

πŸ’‘ ВсС workflows ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ увСдомлСния Π² Telegram ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ (ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Ρ‚), Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ссылки Π½Π° запуск, PR ( Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ) ΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹.

πŸ” Подпись ΠΎΠ±Ρ€Π°Π·ΠΎΠ²

Π Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Sigstore cosign для обСспСчСния:

Подпись хранится Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ registry ΠΊΠ°ΠΊ OCI-Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

cosign verify --key <public-key> gitverse.ru/gitverse-demo/landings:<SHAxxx.sig>