Help:CLI: Difference between revisions
(add User_Management_(command_line)) |
(add svacer-server startup with config file example) |
||
Line 287: | Line 287: | ||
== Svacer server features == | == Svacer server features == | ||
=== ΠΠ°ΠΏΡΡΠΊ Ρ ΠΊΠΎΠ½ΡΠΈΠ³-ΡΠ°ΠΉΠ»ΠΎΠΌ === | |||
svacer-server run --config config.yml | |||
'''--config <value>''' β ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ YAML (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ svacer.cfg) | |||
=== ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ === | === ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ === |
Revision as of 15:00, 15 January 2025
CLI features
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ²
Svacer ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎ ΡΠΊΡΠΏΠΎΡΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΊΡΠΏΠΎΡΡ ΡΠ½ΠΈΠΌΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ½ΠΈΠΌΠΊΠ΅, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΡ .
ΠΠΊΡΠΏΠΎΡΡ ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°/Π²Π΅ΡΠΊΠΈ.
ΠΠΊΡΠΏΠΎΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ²:
svacer server export --user <user> --password <pwd> --host <host> --port <port> --grpc <grpc port> --project <project name or id> --branch <branch name or id> --snapshot <snapshot name or id> <output file name>
ΠΠΌΠΏΠΎΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ²:
svacer server import --user <user> --password <pwd> --host <host> --port <port> --grpc <grpc port> --project <project name or id> --branch <branch name or id> --name <new name for snapshot> [--force] <input file name>
ΠΠΏΡΠΈΡ --force ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π²Π΅ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PDF ΠΎΡΡΠ΅ΡΠ°
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ PDF ΠΎΡΡΠ΅ΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° pdfgen.
ΠΠ±ΡΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
svacer pdfgen --cmp-mode [none|new|missing|matched|same] --project [name|id] --branch [name|id] --snapshot [name|id] [--target-project [name|id] --target-branch [name|id] --target-snapshot [name|id]] [--file [re_exp] --checker [re_exp] --severity [re_exp] --review [re_exp]] --out-file report_name --tz time_zone --lang report_lang
- cmpMode β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: none β Π±Π΅Π· ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, new β Π½ΠΎΠ²ΡΠ΅, missing β ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅, matched β ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅, same β ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅
- project, branch, snapshot β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠ½ΠΈΠΌΠΎΠΊ, ΠΎΡΡΠ΅Ρ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΠΊ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: --project zstd --branch "7683ed6a-b838-4090-9945-10e148f94be3" --snapshot zstd_130
- target-project, target-branch, target-snapshot β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠ½ΠΈΠΌΠΎΠΊ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ (ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² cmpMode: new, missing, matched, same).
- file, checker, severity, review β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π·Π°Π΄Π°ΡΡΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΊ ΡΠΏΠΈΡΠΊΡ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ². Π€ΠΈΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π² ΠΎΡΡΠ΅Ρ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ² Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΠΈΠ»ΡΡΡ Π½Π΅ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½. File β ΡΠΈΠ»ΡΡΡ ΠΏΠΎ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ, Π³Π΄Π΅ Π±ΡΠ» ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ ΠΌΠ°ΡΠΊΠ΅Ρ. Checker β ΡΠΈΠ»ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΊΠ΅ΡΡ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ. Severity β ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΡΡΡ ΡΡΠ°Π±ΠΎΡΠ°Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΠ΅ΡΠ°. Review β ΡΡΠ°ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ (confirmed, unclear ΠΈ Ρ. Π΄.)
- out-file β ΠΈΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΎΡΡΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ pdf
- tz β Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·ΠΎΠ½Π° Π² ΠΌΠΈΠ½ΡΡΠ°Ρ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ²ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ
- lang β ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΎΡΡΠ΅ΡΠ΅ (en β Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, ru β ΡΡΡΡΠΊΠΈΠΉ)
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ cmpMode Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ none (ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
ΠΠ»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ² Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ cmpMode [new, missing, same, matched]. ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ Π² GUI. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°: target-project, target-branch, target-snapshot. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ target* Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ (project -> target-project, branch -> target-branch, ...). Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΉ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: severity, file, review, checker), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ public API:
- URL β /api/public/exportPDF
- ΠΠ΅ΡΠΎΠ΄ β POST
Π’Π΅Π»ΠΎ Π·Π°ΠΏΡΠΎΡΠ° β JSON, ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
{ "compare_mode": "new", "context":{ "project": "zstd", "branch": "v13", "snapshot": "zstd_131" }, "target_context":{ "project": "zstd", "branch": "v13", "snapshot": "zstd_132" }, "language": "en", "timezone": 180, "filters": { "checker": "^Z.*$", "file": ".*example.*", "severity": "Cr.*", "review": "Conf.*" } }
ΠΠ°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° zstd ΠΈ Π²Π΅ΡΠΊΠΈ v13 Π΄Π²ΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² zstd_131 ΠΈ zstd_132. ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π²ΡΠ±ΡΠ°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ. Π‘ΡΠ΅Π΄ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΎΡΡΠ°Π½ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, ΡΡΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΡΠΈΠ»ΡΡΡΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΡΠ΅ΠΊΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π±ΡΠΊΠ²Ρ Z, ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΠΎΠ²ΠΎ example, ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΡΡΡ ΡΠ΅ΠΊΠ΅ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ Cr (ΡΡΠΎ Π² ΡΠΈΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ»ΡΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Critical) Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ Conf (ΡΡΠΎ Π² ΡΠΈΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ»ΡΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Confirmed). Π―Π·ΡΠΊ ΠΎΡΡΠ΅ΡΠ° β Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡ β 180 ΠΌΠΈΠ½ΡΡ (3 ΡΠ°ΡΠ°).
ΠΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΡΠΎΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ svacer markup import, ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CLI/REST API Markup2.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
svacer markup --user <user> --password <password> --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> import --template <name> [--exclude-paths <path1, path2, ..., pathN> --from-build-object]
ΠΠ΄Π΅:
- user, password β ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
- project β ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΈΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ
- branch β Π²Π΅ΡΠΊΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ master), Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΈΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ
- snapshot β ΡΠ½ΠΈΠΌΠΎΠΊ Π² Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈ Π²Π΅ΡΠΊΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ), Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΈΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ
- exclude-paths β ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ
- template β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ (ΡΠ»Π°Π³ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΊΡΠΏΠΎΡΡΠ°)
- from-build-object β ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ, ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³ΡΡΠΆΠ°ΡΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ Π² ΠΎΠΏΡΠΈΡΡ Π²ΡΡΠ΅.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΡΠΎΡΠΈΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π²Π΅ΡΠΊΡ ΠΈ ΡΠ½ΠΈΠΌΠΎΠΊ.
ΠΠ»Ρ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅
//svacer_review: -<warn class>[|-<warn class>]+
ΠΡΠΈΠΌΠ΅Ρ:
if (!strncmp("--filelimit",argv[i],11)) { j = 11; //svacer_review: -UNUSED_VALUE if (*(argv[i]+11) == '=') {
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π³Π΄Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Svace.
ΠΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ import --upload ΠΈ upload ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»Π°Π³ --template <template>. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
Π¨Π°Π±Π»ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ DEFAULT
Π‘Π΅ΡΠ²Π΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π΅ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ DEFAULT. Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² Settings > Markup templates (ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°).
Π¨Π°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π· Π²ΡΠ³ΡΡΠ·ΠΊΡ ΠΊΠΎΠ΄Π° Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π°.
Π ΡΠ°Π±Π»ΠΎΠ½Π΅ DEFAULT ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠΌ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ΅ΠΊ. ΠΠΌΠΏΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΡΠ°ΡΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ Undecided Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π½Π΅ΠΉ.
ΠΡΠΈΠΌΠ΅Ρ:
//svacer_review: FORMAT_STRING.PARAM_EXCESS r:Confirmed|s:Minor|a:Undecided|c: //svacer_review: UNINIT.LOCAL_VAR r:Confirmed|s:Unspecified|a:Fix required|c:will be fixed printf("v = %d", fl3(), i);
Π Π°Π·ΠΌΠ΅ΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½Π°, Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ ΠΌΠ°ΡΠΊΠ΅ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (--path-prefix)
ΠΡΠ»ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ» Π·Π°Π³ΡΡΠΆΠ΅Π½ ΡΠ½ΠΈΠΌΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ (ΠΈΠ»ΠΈ Π²ΡΠ΅Ρ ) ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΎΡΡ, Π° ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ ΡΠ»Π°Π³ --path-prefix, ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ svacer markup update.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
svacer markup update --user <user> --password <password> --project <project id or name> --branch <branch id or name> --path-prefix <prefix:replacement; prefix:replacement> [<snapshot id or name>1, <snapshot id or name>2, ..., <snapshot id or name>N]
ΠΠ΄Π΅:
- user, password β ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
- project β ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°
- branch β Π²Π΅ΡΠΊΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ master), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°
- path-prefix β ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ² ΠΏΡΡΠ΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅: <file> ΠΈΠ»ΠΈ line prefix:replacement;prefix:replacement
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ ΠΈΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΠΌΠΈ ΠΏΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π½Π΅ Π±ΡΠ΄ΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊΠΎ Π²ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π·Π° Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π² Π»ΠΎΠ³Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΡΠ΅ΡΠ΅Π· UI ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Ρ ΡΠΎΠ»ΡΡ admin Π² Settings > Server information).
ΠΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ
ΠΠ»Ρ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ (ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ JSON)
svacer markup [auth/selection] suppress list
ΠΡΠΈΠΌΠ΅Ρ
svacer markup --user admin --password admin --project tree-command suppress list
ΠΠΎΠ΄Π°Π²ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
svacer markup [auth/selection] suppress add id1 id2 id3
ΠΡΠΈΠΌΠ΅Ρ
svacer markup --user admin --password admin --project tree-command suppress add 29d298cd-752d-4d19-b535-2089a72a96af
Π£Π±ΡΠ°ΡΡ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ
svacer markup [auth/selection] suppress remove id1 id2 id3
ΠΡΠΈΠΌΠ΅Ρ
svacer markup --user admin --password admin --project tree-command suppress remove 29d298cd-752d-4d19-b535-2089a72a96af
Π£Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ
svacer markup [auth/selection] suppress remove
ΠΡΠΈΠΌΠ΅Ρ
svacer markup --user admin --password admin --project tree-command suppress remove
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ ID Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ public REST API. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ Π² CI/CD pipeline. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
ΠΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ½ΠΈΠΌΠΊΠ° Π³Π΄Π΅ Π΅ΡΡΡ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½Π½ΡΠ΅.
ΠΠ²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ
Π Svacer Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Ρ Π²Π΅ΡΠΊΠΈ Π½Π° Π²Π΅ΡΠΊΡ (Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ°Π²Π° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°).
svacer server automigrate [command] [flags]
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ command:
- add β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ
- delete β ΡΠ΄Π°Π»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
- show_config β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (Config Table), ΠΈΡ id, Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡ ΡΠΎΠ·Π΄Π°Π»
- show_automigrate β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ Π²Π΅ΡΠΎΠΊ Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (Automigrate Table)
- log β Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ (Done Automigrate Table)
Π€Π»Π°Π³ pattern, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ <add|delete|show_config|log>
- ΠΠ»Ρ add: ΠΠ°ΡΡΠ΅ΡΠ½ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅:
srcProject{id|name}/srcBranch{id|name}=>receiveProject{id|name|regEx}/receiveBranch{id|name|regEx}
- regEx β Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ PostgreSQL
- ΠΠ»Ρ delete: ΠΠ°ΡΡΠ΅ΡΠ½ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅:
srcProject{id|name}/srcBranch{id|name}=>receiveProject{id|name|regEx}/receiveBranch{id|name|regEx}
- ΠΠ°ΡΡΠ΅ΡΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ Π·Π°ΠΏΠΈΡΠ°Π½ Π² Config Table
- ΠΠ»Ρ show_config: ΠΠ°ΡΡΠ΅ΡΠ½ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΠΎΠΈΡΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
ILIKE "'%"+pattern+"%'"
- ΠΠ»Ρ log: Π€Π»Π°Π³ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
srcProjectId/srcBranchId=>receiveProjectId/receiveBranchId
ΠΈΠ»ΠΈsrcProjectName/srcBranchName=>receiveProjectName/receiveBranchName
Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ
Π€Π»Π°Π³ id, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ command <delete|show_automigrate>
Π² ΡΠΎΡΠΌΠ°ΡΠ΅ uuid
- ΠΠ»Ρ delete: id Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ (ΠΈΠ· Config Table)
- ΠΠ»Ρ show_automigrate: id Π²Π΅ΡΠΊΠΈ/ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ (Automigrate Table) ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ, Π³Π΄Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠΉ id
Π€Π»Π°Π³ format β ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ command <show_config|show_automigrate|log>
- ΠΠ»Ρ show_config:
- table β Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ
- json β Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ json
- no-id β Π²ΡΠ²ΠΎΠ΄ Π±Π΅Π· config id
- ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ:
json,no-id
. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β table.
- ΠΠ»Ρ show_automigrate|log:
- table β Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ
- json β Π²ΡΠ²ΠΎΠ΄ Π² Π²ΠΈΠ΄Π΅ json
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β table.
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ POST Π·Π°ΠΏΡΠΎΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ /api/automigrate
. Π ΡΠ΅Π»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ json, Ρ ΠΏΠΎΠ»ΡΠΌΠΈ action(not null), pattern, id
. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΡΡΠΎ ΠΈ Π² CLI.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°:
- ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ automigrate
- ΠΡΠΈ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ Π½Π° Π½ΠΈΡ
- ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, ΡΠ΄Π°Π»ΡΠ΅Ρ Π΅Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Config ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ
- ΠΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π΅ΡΠΎΠΊ Π½Π° ΠΎΠ΄Π½Ρ (Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ)
- ΠΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΠΎΠΊ (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅ΡΠΊΠΈ/ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠ°) ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ Π² ΡΠ°Π±Π»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ). ΠΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
- ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Svace ΡΠ΅ΡΠ΅Π· CLI: upload, Π»ΠΈΠ±ΠΎ import Ρ ΡΠ»Π°Π³ΠΎΠΌ --upload. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ²ΠΈΡ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ. Π’Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΡ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ (Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ to_branch) ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ².
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ CLI
SVACER_AUTH_CREDS=login:password SVACER_AUTH_TOKEN=token
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠΊΠ΅Π½Π° Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅ΡΠ΅Π· REST endpoint /api/public/login
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ svacer Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠΊΠ΅Π½ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
svacer server login --host [hostname] --port [restPort] --grpc [grpcPort] --ssl-ca-certs [certs_path] --user [username] --password [password] --out [file]
ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ svacer ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ (host, port, user, password), ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΊΠ΅Π½ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ». ΠΠ»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΡ --out . ΠΡΠ»ΠΈ ΠΎΠΏΡΠΈΡ --out ΠΎΠΏΡΡΠ΅Π½Π°, ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ» svacer_conn.json Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
svacer server login --host svacer.local --port 8080 --grpc 3002 --user admin --password --out cn.json
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ ΠΏΠΎΠΏΡΡΠΊΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ svacer.local ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (host, port, grpc) Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ Π² ΡΠ°ΠΉΠ» cn.json.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ ΡΠ°ΠΉΠ»Π° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ --conn_file. ΠΠ°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π²ΠΎ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ --user --password (ΡΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
svacer import --conn_file cn.json .
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠΈΡΠ°Π΅Ρ ΡΠΎΠΊΠ΅Π½ ΠΈΠ· ΡΠ°ΠΉΠ»Π° cn.json ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ host, port, grpc.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ SVACER_CONN_FILE.
ΠΡΠ²ΠΎΠ΄ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
svacer marker list --host host --user user --password password --project project_name_or_id --branch branch_name_or_id --snapshot snapshot_name_or_id
ΠΡΠ²ΠΎΠ΄:
# warn file line review msg 1000 INVARIANT_RESULT /.build/subst.c 7080 Expression 'tl->word->flags | (1 << 21)' is always true , which may be caused by a logical error 1001 DEREF_AFTER_NULL.LOOP /.build/execute_cmd.c 3327 After having been compared to NULL value at execut e_cmd.c:3325, pointer 'l' is dereferenced at execu te_cmd.c:3327. 1002 DEREF_AFTER_NULL.LOOP /.build/variables.c 2749 After having been compared to NULL value at variab les.c:2656, pointer 'vc' is dereferenced at variab les.c:2749. 1003 CHECK_AFTER_PASS_TO_PROC /.build/redir.c 1219 Variable 'redirector' was passed to function at re dir.c:1215 by calling function 'fcntl' that can't use negative values is checked for negative value at redir.c:1219.
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΠ»Π°Π³Π° --out-format=json
Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π² JSON ΡΠΎΡΠΌΠ°ΡΠ΅:
[{"id":"e0ec7389-42a0-403c-9ce2-bfaa3bfa0228","file":"/.build/subst.c","function":"WORD_DESC * parameter_brace_expand_rhs()","line":7080,"locID":1000,"lang":"CXX","tool":"CSA","warnClass":"INVARIANT_RESULT","mtid":"CSA.INVARIANT_RESULT.1","msg":"Expression 'tl-\u003eword-\u003eflags | (1 \u003c\u003c 21)' is always true , which may be caused by a logical error","details":"811ed8f680ae9b540707436615348aed6d32ee93","flags":0,"invariant":"TBXA/IYVZKVlH6f19tiGsd3stuI"},{"id":"184b85bf-a63f-4187-b290-25a5950b3353","file":"/.build/execute_cmd.c","function":"select_query","line":3327,"locID":1001,"
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΈΠ· CLI (ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ)
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
svacer container snapshot merge --host host --user user --password password --branch target_branch --name target_snapshot_name --snapshot val1 --snapshot val2 --snapshot val3 ...
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ UUID ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π»ΠΈΠ±ΠΎ ΡΠΎΡΠΌΠ°Ρ
ΡΠ΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΠΊΠ°: <project name>:::<branch name> ΡΠ½ΠΈΠΌΠΎΠΊ: <project name>:::<branch name>:::<snapshot name>
ΠΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ Π²Π΅ΡΠΎΠΊ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ½ΠΈΠΌΠΊΠ°ΠΌ ΠΈ Π½Π° Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ
Π‘ΠΌ. Help:CLI/management/containers
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΠΎΠ»ΡΠΌΠΈ
Π‘ΠΌ. User Management (command line)
Svacer server features
ΠΠ°ΠΏΡΡΠΊ Ρ ΠΊΠΎΠ½ΡΠΈΠ³-ΡΠ°ΠΉΠ»ΠΎΠΌ
svacer-server run --config config.yml
--config <value> β ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ YAML (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ svacer.cfg)
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
Svacer ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΊΠ²ΠΎΠ·Π½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· reverse proxy. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΡ proxy-mode. ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ HTTP Basic Authentication) Π½Π° reverse proxy ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Svacer.
ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ proxy-mode ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ header Ρ ΠΏΡΠΎΠΊΡΠΈ Authorization Basic ..., ΠΎΡΠΊΡΠ΄Π° Svacer Π±Π΅ΡΠ΅Ρ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ Π°ΠΊΠΊΠ°ΡΠ½Ρ Ρ ΡΠ°ΠΊΠΈΠΌ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ Π΅ΡΡΡ Π² ΠΠ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Svacer.
ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
svacer-server run --proxy-mode
Π₯ΡΠΊΠΈ
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΊΠΎΠ² ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΡΠΈΡ --hooks <path to JSON file>. ΠΡΠ° ΠΎΠΏΡΠΈΡ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ· web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ Ρ ΡΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΡΠΊΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
{ "hooks": [ { "id": "<id>", "label": "<label >", "target": "<target>", "input": ["<param1>", "<param2>", ...], "cmd": "<path to executable>", "args": ["<arg1>", β<arg2>β, ...] }, ... ] }
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Ρ ΡΠΊΠΎΠ²
id | ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Ρ ΡΠΊΠ°. ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π² ΡΠ°ΠΉΠ»Π΅ |
label | ΠΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ΄ΠΈΡ Π² web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ |
target | ΠΠ΅ΡΡΠΎ Π² UI, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π‘Π΅ΠΉΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β default. ΠΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Details Π½Π° ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° |
input | ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
|
cmd | ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½. ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π·Π°ΠΏΡΡΠΊΠ° |
args | ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° <args> ΠΈ ΡΠΏΠΈΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»Ρ <input> |
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΊΠΎΠ² β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Jira ΠΈΠ»ΠΈ Gitlab. ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΊΠΎΠ².
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Svacer, ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
SVACER_SERVER_THROTTLE_PARAMS=limit,backlogLimit,timeout
- limit β ΡΠΈΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- backlogLimit β ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΠΊΠ»ΠΎΠ³Π° Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΠΉΡΠ°Ρ
- timeout β Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Π² Π±ΡΠΊΠ»ΠΎΠ³Π΅ (ΡΠΎΡΠΌΠ°Ρ 1m12s β duration)