Skip to content

bakhirev/assayo-crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Визуализация ΠΈ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… вашСго git-рСпозитория (Π΄Π΅ΠΌΠΎ).

Π’ этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ находится ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для автоматичСского сбора ΠΈ объСдинСния Π»ΠΎΠ³ΠΎΠ² для списка Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

АрхитСктура прилоТСния

  1. Reports showcase UI ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список доступных ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ состоит ΠΈΠ· названия, описания ΠΈ списка Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².
  2. Crawler service (Π²Ρ‹ Ρ‚ΡƒΡ‚) собираСт Π»ΠΎΠ³ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² для ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°.
  3. Log visualization UI ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» Π»ΠΎΠ³Π°.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹

  1. ОТиданиС Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° запуска (Ρ‚Π°ΠΉΠΌΠ΅Ρ€, запрос, событиС);
  2. ΠžΠ±Ρ…ΠΎΠ΄ списка Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²;
  3. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ рСпозитория;
  4. ОбъСдинСниС Π»ΠΎΠ³ΠΎΠ² Π² ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹;
  5. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 1.

РСсурсы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипт Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большой вСс. ДоступныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

  • Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ. Π’ этом случаС расходуСтся ΠΌΠ½ΠΎΠ³ΠΎ дискового пространства, Π½ΠΎ увСличиваСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° списка Π·Π°Π΄Π°Ρ‡ ΠΈ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ сСтСвыС расходы для получСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
  • Π£Π΄Π°Π»ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ сразу послС получСния Π»ΠΎΠ³Π°. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ трСбуСтся мСньший ΠΎΠ±ΡŠΡ‘ΠΌ дискового пространства, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ списка ΠΈ ΠΎΠ±ΡŠΡ‘ΠΌ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ?

Запуск ΠΈΠ· исходников

  1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΈ установитС NodeJS
  2. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ скачайтС этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  3. УстановитС зависимыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ npm install
  4. ΠŸΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ настройки прилоТСния Π² Ρ„Π°ΠΉΠ»Π΅ src/configs/app.json
  5. ΠŸΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅ список Π·Π°Π΄Π°Ρ‡ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, список Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) Π² Ρ„Π°ΠΉΠ»Π΅ /src/configs/tasks.json
  6. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ src/
  7. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ node index.js

Запуск Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

  1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ docker ΠΎΠ±Ρ€Π°Π·;
  2. ΠŸΠΎΠ΄Π½ΠΈΠΌΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² локальной сСти;

ΠžΠ±Ρ‰ΠΈΠ΅ настройки

Настройки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ сразу ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния:

  1. Из внСшнСго источника;
  2. Из ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния;
  3. Из Ρ„Π°ΠΉΠ»Π°.

Π€Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ src/configs/app.json

Бвойство Π’ΠΈΠΏ значСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ ОписаниС
loadConfigFromUrl JSON НуТно Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ настройки ΠΈΠ· внСшнСго источника?
loadConfigFromUrl.url string URL-адрСс запроса.
loadConfigFromUrl.method string ΠœΠ΅Ρ‚ΠΎΠ΄ запроса.
loadConfigFromUrl.headers JSON Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса Π² Π²ΠΈΠ΄Π΅ json ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
loadConfigFromUrl.body any Π’Π΅Π»ΠΎ запроса.
loadTasksFromUrl JSON НуТно Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ список Π·Π°Π΄Π°Ρ‡ ΠΈΠ· внСшнСго источника?
loadTasksFromUrl.url string URL-адрСс запроса.
loadTasksFromUrl.method string ΠœΠ΅Ρ‚ΠΎΠ΄ запроса.
loadTasksFromUrl.headers JSON Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса Π² Π²ΠΈΠ΄Π΅ json ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
loadTasksFromUrl.body any Π’Π΅Π»ΠΎ запроса.
output.folder string "logs" Папка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π»ΠΎΠ³ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
output.needCreateAfterInit boolean true НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния.
input.folder string "repositories" Папка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΏΠΈΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² спискС Π·Π°Π΄Π°Ρ‡.
input.needCreateAfterInit boolean true НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния.
input.needClearAfterUse boolean false НуТно ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сбора Π»ΠΎΠ³ΠΎΠ².

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния

Бвойство Π’ΠΈΠΏ значСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΠ΅ ОписаниС
PORT number 3007 ΠŸΠΎΡ€Ρ‚ запуска прилоТСния.
LOAD_CONFIG_URL string URL-адрСс для запроса для настроСк прилоТСния.
LOAD_CONFIG_METHOD string ΠœΠ΅Ρ‚ΠΎΠ΄ запроса.
LOAD_CONFIG_HEADERS JSON-like string Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса Π² Π²ΠΈΠ΄Π΅ json ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
LOAD_CONFIG_BODY any Π’Π΅Π»ΠΎ запроса.
LOAD_TASKS_URL string URL-адрСс для запроса списка Π·Π°Π΄Π°Ρ‡.
LOAD_TASKS_METHOD string ΠœΠ΅Ρ‚ΠΎΠ΄ запроса.
LOAD_TASKS_HEADERS JSON-like string Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса Π² Π²ΠΈΠ΄Π΅ json ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
LOAD_TASKS_BODY any Π’Π΅Π»ΠΎ запроса.
OUTPUT_FOLDER string "logs" Папка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π»ΠΎΠ³ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
OUTPUT_NEED_CREATE_AFTER_INIT boolean true НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния.
INPUT_FOLDER string "repositories" Папка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΏΠΈΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² спискС Π·Π°Π΄Π°Ρ‡.
INPUT_NEED_CREATE_AFTER_INIT boolean true НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния.
INPUT_NEED_CLEAR_AFTER_USE boolean false НуТно ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сбора Π»ΠΎΠ³ΠΎΠ².

Настройки списка Π·Π°Π΄Π°Ρ‡

Бписок Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ сразу ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… источников. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния:

  1. Из внСшнСго источника;
  2. Из Ρ„Π°ΠΉΠ»Π°.

Π€Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ src/configs/tasks.json

Бвойство Π’ΠΈΠΏ значСния ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ОписаниС
code string Π΄Π° Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС названия ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
folder string Π½Π΅Ρ‚ ДочСрняя ΠΏΠ°ΠΏΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ». По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ» помСщаСтся Π² ΠΏΠ°ΠΏΠΊΡƒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² ΠΎΠ±Ρ‰ΠΈΡ… настройках (output.folder)
repositories[] object[] Π΄Π° Бписок Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
repositories[].url string Π΄Π° URL-адрСс для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ рСпозитория.
repositories[].folder string Π½Π΅Ρ‚ ДочСрняя ΠΏΠ°ΠΏΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
repositories[].needClearAfterUse boolean Π½Π΅Ρ‚ НуТно ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ эту ΠΏΠ°ΠΏΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сбора Π»ΠΎΠ³ΠΎΠ².

API

ΠœΠ΅Ρ‚ΠΎΠ΄ URL Π’Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° ОписаниС
GET /start { message: string } Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ списка Π·Π°Π΄Π°Ρ‡
GET /check { message: string } ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус прилоТСния (health check)

ПоТСлания, прСдлоТСния, замСчания

Releases

No releases published

Packages

No packages published