diff --git a/ci/config.json b/ci/config.json index 7d55e9cf93..7d96a42aa1 100644 --- a/ci/config.json +++ b/ci/config.json @@ -1,640 +1,648 @@ { - "primary": { - "description": "Primary project data", - "value": { - "version": { - "description": "Current project version", - "value": "1.34.0" - }, - "repoUrl": { - "description": "Repository URL", - "value": "https://github.com/Bayselonarrend/OpenIntegrations" - } - } - }, - "local": { - "description": "Paths and information for processing on local machine", - "value": { - "engineWindows": { - "description": "OneScript engine for CLI packs (Windows)", - "value": "C:/engine/windows" - }, - "engineLinux": { - "description": "OneScript engine for CLI packs (Linux)", - "value": "C:/engine/linux" - }, - "engineLinuxWsl": { - "description": "OneScript engine for CLI packs (Linux, at WSL)", - "value": "/mnt/c/engine/linux/" - }, - "onecConfig": { - "description": "1C:Enterprise configurator exe path", - "value": "C:/Program Files/1cv8/8.3.18.1208/bin/1cv8.exe" - }, - "onecClient": { - "description": "1C:Enterprise client exe path", - "value": "C:/Program Files/1cv8/8.3.18.1208/bin/1cv8c.exe" - }, - "osPath": { - "description": "OneScript exe path", - "value": "C:/Program Files/OneScript/" - }, - "ghcliPath": { - "description": "GitHub CLI exe path", - "value": "C:/Program Files/GitHub CLI/gh.exe" - }, - "innoPath": { - "description": "Inno Setup exe path", - "value": "C:/Program Files (x86)/Inno Setup 6/Compil32.exe" - }, - "serverName": { - "description": "Build server name", - "value": "DEVSRV" - }, - "edtProjectsPath": { - "description": "EDT projects directory", - "value": "C:/Users/bayse/AppData/Local/1C/1cedtstart/projects" - }, - "jenkinsHost": { - "description": "Jenkins URL", - "value": "https://jenkins.openintegrations.dev" - }, - "rcloneConf": { - "description": "rclone configuration name for web site deploying", - "value": "hoster" - }, - "npmPath": { - "description": "NPM executable", - "value": "C:/Program Files/nodejs/npm.cmd" - }, - "releaseWorkspace": { - "description": "Artifacts root folder", - "value": "C:/ProgramData/Jenkins/.jenkins/workspace/OpiBuild/OpiRelease/" - } - } - }, - "paths": { - "description": "Special repository directories paths", - "value": { - "root": { - "description": "Source code root directory", - "value": "./src/" - }, - "addinsSrc": { - "description": "AddIns directory", - "value": "./src/addins/" - }, - "packageSrc": { - "description": "OneScript package directory", - "value": "./src/ru/OInt/" - }, - "packagedefSrc": { - "description": "Packagedef file path", - "value": "./src/ru/OInt/packagedef" - }, - "configurationSrc": { - "description": "1C configuration directory", - "value": "./src/ru/OPI/src/" - }, - "dictionariesSrc": { - "description": "Translation dictionaries directory", - "value": "./service/dictionaries/" - }, - "workflowsSrc": { - "description": "GitHub Actions workflows directory", - "value": "./.github/workflows/" - }, - "jenkinsSrc": { - "description": "Jenkinsfiles directory", - "value": "./ci/pipelines/" - }, - "paramsExamplesSrc": { - "description": "CLI tips directory", - "value": "./service/params_examples/" - }, - "templatesSrc": { - "description": "CI template files directory", - "value": "./service/templates/" - }, - "secretDataSrc": { - "description": "File with credentials", - "value": "./data.json" - } - } - }, - "docs": { - "description": "Docs generation settings", - "value": { - "deployMainSrc": { - "description": "Primary docs workspace directory", - "value": "./docs/docusaurus/" - }, - "deployDocsSrc": { - "description": "MD files at workspace docs directory", - "value": "./docs/docusaurus/docs/" - }, - "deployBuildSrc": { - "description": "Deploy-ready docs directory", - "value": "./docs/docusaurus/build/" - }, - "deployModulesSrc": { - "description": "Node modules directory", - "value": "./docs/docusaurus/node_modules/" - } - } - }, - "tests": { - "description": "Testing data", - "value": { - "yaxunitConf": { - "description": "YaxUnit configurations directory", - "value": "./service/yaxunit_conf/" - }, - "jenkinsSplit": { - "description": "Jenkins path for split tests", - "value": "/job/OPITest/job/OpiSplitTests" - }, - "jenkinsFull": { - "description": "Jenkins path for full tests", - "value": "/job/OPITest/job/OpiFullTest" - }, - "availability": { - "description": "Enabled and disabled tests categories", - "value": { - "Telegram": true, - "VK": true, - "Viber": true, - "Twitter": true, - "FTP": true, - "SSH": true, - "SFTP": true, - "PostgreSQL": true, - "MySQL": true, - "MSSQL": true, - "SQLite": true, - "RCON": true, - "YandexDisk": true, - "GoogleWorkspace": true, - "GoogleCalendar": true, - "GoogleDrive": true, - "GoogleSheets": true, - "Notion": true, - "Slack": true, - "Airtable": true, - "Dropbox": true, - "Bitrix24": true, - "VkTeams": true, - "Neocities": true, - "CDEK": true, - "YandexMetrika": true, - "S3": true, - "TCP": true, - "GreenAPI": true, - "GreenMax": true, - "Ollama": true, - "HTTPКлиент": true, - "OpenAI": false, - "ReportPortal": true, - "HTTPClient": true, - "BuildCheck": true, - "MongoDB": true, - "GRPC": true, - "ClickHouse": true, - "RSS": true - } - } - } - }, - "release": { - "description": "Release producing data", - "value": { - "artifactsCount": { - "description": "Release artifacts (files) count", - "value": 18 - } - } - }, - "localization": { - "description": "Localization data", - "value": { - "mainLang": { - "description": "Main project language", - "value": "ru" - }, - "langs": { - "description": "Localization languages", - "value": [ - "en", - "ru" - ] - }, - "langsVars": { - "description": "Language defined data", - "value": { - "ru": { - "description": "Language defined data for Russian", - "value": { - "title": { - "description": "Language name", - "value": "English" - }, - "edt_project": { - "description": "1C:EDT project name", - "value": "OpenIntegrations_Ru" - }, - "ib_name": { - "description": "1C infobase name", - "value": "OpenIntegrations" - }, - "methodString": { - "description": "Method word translation", - "value": "Метод" - }, - "synonymString": { - "description": "Synonym word translation", - "value": "Синоним" - }, - "sectionsString": { - "description": "Section word translation", - "value": "Раздел" - }, - "testProcessProcedure": { - "description": "Tests results processing procedure name", - "value": "Обработать" - }, - "testsModule": { - "description": "Main tests module name", - "value": "OPI_Тесты" - }, - "testsModuleCLI": { - "description": "CLI test module name", - "value": "OPI_ТестыCLI" - }, - "testsDataModule": { - "description": "Test data module path", - "value": "./src/ru/OInt/tests/Modules/internal/Modules/OPI_ПолучениеДанныхТестов.os" - }, - "testsTableMethod": { - "description": "Test table retrieve method", - "value": "ПолучитьТаблицуТестов" - }, - "testsSectionsMethod": { - "description": "Test selections array retrieve method (for Jenkins)", - "value": "ПолучитьСоответствиеРазделовТестирования" - }, - "testsSectionsMethodGA": { - "dictionaries": "Test selections array retrieve method (for Github Actions)", - "value": "ПолучитьСоответствиеРазделовТестированияGA" - }, - "docsMdSrc": { - "description": "Docs MD files directory", - "value": "./docs/ru/md/" - }, - "codeExamplesSrc": { - "description": "Docs code examples directory", - "value": "./docs/ru/examples/" - }, - "testValuesSrc": { - "description": "Docs test values directory", - "value": "./docs/ru/data/" - }, - "testsModulePath": { - "description": "Main tests module path", - "value": "./src/ru/OInt/tests/Modules/OPI_Тесты.os" - }, - "testsCliModulePath": { - "description": "CLI test module path", - "value": "./src/ru/OInt/tests/Modules/OPI_ТестыCLI.os" - }, - "testsRegionName": { - "description": "Atomic test retrieve method", - "value": "АтомарныеТесты" - }, - "packageDescriptionSrc": { - "description": "Package description filepath", - "value": "./service/templates/package_description_ru.txt" - }, - "remoteDocsSrc": { - "description": "Docs directory on remote server (hosting)", - "value": "public_html" - }, - "namesTranslation": { - "description": "Modules names localization", - "value": {} - }, - "docsUrl": { - "description": "Docs website URL", - "value": "https://openintegrations.dev" - }, - "docsCategories": { - "description": "Docs categories and classes", + "primary": { + "description": "Primary project data", "value": { - "Messenger": "Мессенджеры", - "Social": "Социальные сети", - "Database": "Базы данных и электронные таблицы", - "Folder": "Файловые хостинги и хранилища", - "CRM": "Комплексные решения (CMS, CRM)", - "Commerce": "Электронная коммерция и доставка", - "Calendar": "Планирование и управление проектами", - "AI": "Искусственный интеллект", - "Exchange": "Протоколы обмена", - "Other": "Прочее" + "version": { + "description": "Current project version", + "value": "1.34.0" + }, + "repoUrl": { + "description": "Repository URL", + "value": "https://github.com/Bayselonarrend/OpenIntegrations" + } } - } - } - }, - "en": { - "description": "Language defined data for English", - "value": { - "title": { - "description": "Language name", - "value": "English" - }, - "edt_project": { - "description": "1C:EDT project name", - "value": "OpenIntegrations_En" - }, - "ib_name": { - "description": "1C infobase name", - "value": "OpenIntegrationsEng" - }, - "methodString": { - "description": "Method word translation", - "value": "Method" - }, - "synonymString": { - "description": "Synonym word translation", - "value": "Synonym" - }, - "sectionsString": { - "description": "Section word translation", - "value": "Section" - }, - "testProcessProcedure": { - "description": "Tests results processing procedure name", - "value": "Process" - }, - "testsModule": { - "description": "Main tests module name", - "value": "OPI_Tests" - }, - "testsModuleCLI": { - "description": "CLI test module name", - "value": "OPI_TestsCLI" - }, - "testsDataModule": { - "description": "Test data module path", - "value": "./src/en/OInt/tests/Modules/internal/Modules/OPI_TestDataRetrieval.os" - }, - "testsTableMethod": { - "description": "Test table retrieve method", - "value": "GetTestTable" - }, - "testsSectionsMethod": { - "description": "Test selections array retrieve method (for Jenkins)", - "value": "GetTestingSectionMapping" - }, - "testsSectionsMethodGA": { - "dictionaries": "Test selections array retrieve method (for Github Actions)", - "value": "GetTestingSectionMappingGA" - }, - "docsMdSrc": { - "description": "Docs MD files directory", - "value": "./docs/en/md/" - }, - "codeExamplesSrc": { - "description": "Docs code examples directory", - "value": "./docs/en/examples/" - }, - "testValuesSrc": { - "description": "Docs test values directory", - "value": "./docs/en/data/" - }, - "testsModulePath": { - "description": "Main tests module path", - "value": "./src/en/OInt/tests/Modules/OPI_Tests.os" - }, - "testsCliModulePath": { - "description": "CLI test module path", - "value": "./src/en/OInt/tests/Modules/OPI_TestsCLI.os" - }, - "testsRegionName": { - "description": "Atomic test retrieve method", - "value": "AtomicTests" - }, - "packageDescriptionSrc": { - "description": "Package description filepath", - "value": "./service/templates/package_description_en.txt" - }, - "remoteDocsSrc": { - "description": "Docs directory on remote server (hosting)", - "value": "public_html_en" - }, - "namesTranslation": { - "description": "Modules names localization", + }, + "local": { + "description": "Paths and information for processing on local machine", "value": { - "OPI_Инструменты": "OPI_Tools", - "OPI_Криптография": "OPI_Cryptography", - "OPI_HTTPКлиент": "OPI_HTTPClient", - "OPI_Компоненты": "OPI_AddIns", - "OPI_ЗапросыHTTP": "OPI_HTTPRequests", - "OPI_ЗапросыSQL": "OPI_SQLQueries", - "OPI_ПолучениеДанныхТестов": "OPI_TestDataRetrieval", - "OPI_ПреобразованиеТипов": "OPI_TypeConversion" + "engineWindows": { + "description": "OneScript engine for CLI packs (Windows)", + "value": "C:/engine/windows" + }, + "engineLinux": { + "description": "OneScript engine for CLI packs (Linux)", + "value": "C:/engine/linux" + }, + "engineLinuxWsl": { + "description": "OneScript engine for CLI packs (Linux, at WSL)", + "value": "/mnt/c/engine/linux/" + }, + "onecConfig": { + "description": "1C:Enterprise configurator exe path", + "value": "C:/Program Files/1cv8/8.3.18.1208/bin/1cv8.exe" + }, + "onecClient": { + "description": "1C:Enterprise client exe path", + "value": "C:/Program Files/1cv8/8.3.18.1208/bin/1cv8c.exe" + }, + "osPath": { + "description": "OneScript exe path", + "value": "C:/Program Files/OneScript/" + }, + "ghcliPath": { + "description": "GitHub CLI exe path", + "value": "C:/Program Files/GitHub CLI/gh.exe" + }, + "innoPath": { + "description": "Inno Setup exe path", + "value": "C:/Program Files (x86)/Inno Setup 6/Compil32.exe" + }, + "serverName": { + "description": "Build server name", + "value": "DEVSRV" + }, + "edtProjectsPath": { + "description": "EDT projects directory", + "value": "C:/Users/bayse/AppData/Local/1C/1cedtstart/projects" + }, + "jenkinsHost": { + "description": "Jenkins URL", + "value": "https://jenkins.openintegrations.dev" + }, + "rcloneConf": { + "description": "rclone configuration name for web site deploying", + "value": "hoster" + }, + "npmPath": { + "description": "NPM executable", + "value": "C:/Program Files/nodejs/npm.cmd" + }, + "releaseWorkspace": { + "description": "Artifacts root folder", + "value": "C:/ProgramData/Jenkins/.jenkins/workspace/OpiBuild/OpiRelease/" + } } - }, - "docsUrl": { - "description": "Docs website URL", - "value": "https://en.openintegrations.dev" - }, - "docsCategories": { - "description": "Docs categories and classes", + }, + "paths": { + "description": "Special repository directories paths", "value": { - "Messenger": "Messengers", - "Social": "Social networks", - "Database": "Databases and spreadsheets", - "Folder": "File-hosting services and storages", - "CRM": "Complete solutions (CMS, CRM)", - "Commerce": "E-commerce and delivery", - "Calendar": "Planning and projects management", - "AI": "Artificial Intelligence", - "Exchange": "Exchange protocols", - "Other": "Other" + "root": { + "description": "Source code root directory", + "value": "./src/" + }, + "addinsSrc": { + "description": "AddIns directory", + "value": "./src/addins/" + }, + "packageSrc": { + "description": "OneScript package directory", + "value": "./src/ru/OInt/" + }, + "packagedefSrc": { + "description": "Packagedef file path", + "value": "./src/ru/OInt/packagedef" + }, + "configurationSrc": { + "description": "1C configuration directory", + "value": "./src/ru/OPI/src/" + }, + "dictionariesSrc": { + "description": "Translation dictionaries directory", + "value": "./service/dictionaries/" + }, + "workflowsSrc": { + "description": "GitHub Actions workflows directory", + "value": "./.github/workflows/" + }, + "jenkinsSrc": { + "description": "Jenkinsfiles directory", + "value": "./ci/pipelines/" + }, + "paramsExamplesSrc": { + "description": "CLI tips directory", + "value": "./service/params_examples/" + }, + "templatesSrc": { + "description": "CI template files directory", + "value": "./service/templates/" + }, + "secretDataSrc": { + "description": "File with credentials", + "value": "./data.json" + } + } + }, + "docs": { + "description": "Docs generation settings", + "value": { + "deployMainSrc": { + "description": "Primary docs workspace directory", + "value": "./docs/docusaurus/" + }, + "deployDocsSrc": { + "description": "MD files at workspace docs directory", + "value": "./docs/docusaurus/docs/" + }, + "deployBuildSrc": { + "description": "Deploy-ready docs directory", + "value": "./docs/docusaurus/build/" + }, + "deployModulesSrc": { + "description": "Node modules directory", + "value": "./docs/docusaurus/node_modules/" + } + } + }, + "tests": { + "description": "Testing data", + "value": { + "yaxunitConf": { + "description": "YaxUnit configurations directory", + "value": "./service/yaxunit_conf/" + }, + "jenkinsSplit": { + "description": "Jenkins path for split tests", + "value": "/job/OPITest/job/OpiSplitTests" + }, + "jenkinsFull": { + "description": "Jenkins path for full tests", + "value": "/job/OPITest/job/OpiFullTest" + }, + "availability": { + "description": "Enabled and disabled tests categories", + "value": { + "Telegram": true, + "VK": true, + "Viber": true, + "Twitter": true, + "FTP": true, + "SSH": true, + "SFTP": true, + "PostgreSQL": true, + "MySQL": true, + "MSSQL": true, + "SQLite": true, + "RCON": true, + "YandexDisk": true, + "GoogleWorkspace": true, + "GoogleCalendar": true, + "GoogleDrive": true, + "GoogleSheets": true, + "Notion": true, + "Slack": true, + "Airtable": true, + "Dropbox": true, + "Bitrix24": true, + "VkTeams": true, + "Neocities": true, + "CDEK": true, + "YandexMetrika": true, + "S3": true, + "TCP": true, + "GreenAPI": true, + "GreenMax": true, + "Ollama": true, + "HTTPКлиент": true, + "OpenAI": false, + "ReportPortal": true, + "HTTPClient": true, + "BuildCheck": true, + "MongoDB": true, + "GRPC": true, + "ClickHouse": true, + "RSS": true + } + } + } + }, + "release": { + "description": "Release producing data", + "value": { + "artifactsCount": { + "description": "Release artifacts (files) count", + "value": 18 + } + } + }, + "localization": { + "description": "Localization data", + "value": { + "mainLang": { + "description": "Main project language", + "value": "ru" + }, + "langs": { + "description": "Localization languages", + "value": [ + "en", + "ru" + ] + }, + "langsVars": { + "description": "Language defined data", + "value": { + "ru": { + "description": "Language defined data for Russian", + "value": { + "title": { + "description": "Language name", + "value": "English" + }, + "edt_project": { + "description": "1C:EDT project name", + "value": "OpenIntegrations_Ru" + }, + "ib_name": { + "description": "1C infobase name", + "value": "OpenIntegrations" + }, + "methodString": { + "description": "Method word translation", + "value": "Метод" + }, + "synonymString": { + "description": "Synonym word translation", + "value": "Синоним" + }, + "sectionsString": { + "description": "Section word translation", + "value": "Раздел" + }, + "testProcessProcedure": { + "description": "Tests results processing procedure name", + "value": "Обработать" + }, + "testsModule": { + "description": "Main tests module name", + "value": "OPI_Тесты" + }, + "testsModuleCLI": { + "description": "CLI test module name", + "value": "OPI_ТестыCLI" + }, + "testsDataModule": { + "description": "Test data module path", + "value": "./src/ru/OInt/tests/Modules/internal/Modules/OPI_ПолучениеДанныхТестов.os" + }, + "testsTableMethod": { + "description": "Test table retrieve method", + "value": "ПолучитьТаблицуТестов" + }, + "testsSectionsMethod": { + "description": "Test selections array retrieve method (for Jenkins)", + "value": "ПолучитьСоответствиеРазделовТестирования" + }, + "testsSectionsMethodGA": { + "dictionaries": "Test selections array retrieve method (for Github Actions)", + "value": "ПолучитьСоответствиеРазделовТестированияGA" + }, + "docsMdSrc": { + "description": "Docs MD files directory", + "value": "./docs/ru/md/" + }, + "codeExamplesSrc": { + "description": "Docs code examples directory", + "value": "./docs/ru/examples/" + }, + "testValuesSrc": { + "description": "Docs test values directory", + "value": "./docs/ru/data/" + }, + "testsModulePath": { + "description": "Main tests module path", + "value": "./src/ru/OInt/tests/Modules/OPI_Тесты.os" + }, + "testsCliModulePath": { + "description": "CLI test module path", + "value": "./src/ru/OInt/tests/Modules/OPI_ТестыCLI.os" + }, + "testsRegionName": { + "description": "Atomic test retrieve method", + "value": "АтомарныеТесты" + }, + "packageDescriptionSrc": { + "description": "Package description filepath", + "value": "./service/templates/package_description_ru.txt" + }, + "remoteDocsSrc": { + "description": "Docs directory on remote server (hosting)", + "value": "public_html" + }, + "namesTranslation": { + "description": "Modules names localization", + "value": {} + }, + "docsUrl": { + "description": "Docs website URL", + "value": "https://openintegrations.dev" + }, + "docsCategories": { + "description": "Docs categories and classes", + "value": { + "Messenger": "Мессенджеры", + "Social": "Социальные сети", + "Database": "Базы данных и электронные таблицы", + "Folder": "Файловые хостинги и хранилища", + "CRM": "Комплексные решения (CMS, CRM)", + "Commerce": "Электронная коммерция и доставка", + "Calendar": "Планирование и управление проектами", + "AI": "Искусственный интеллект", + "Exchange": "Протоколы обмена", + "Other": "Прочее" + } + } + } + }, + "en": { + "description": "Language defined data for English", + "value": { + "title": { + "description": "Language name", + "value": "English" + }, + "edt_project": { + "description": "1C:EDT project name", + "value": "OpenIntegrations_En" + }, + "ib_name": { + "description": "1C infobase name", + "value": "OpenIntegrationsEng" + }, + "methodString": { + "description": "Method word translation", + "value": "Method" + }, + "synonymString": { + "description": "Synonym word translation", + "value": "Synonym" + }, + "sectionsString": { + "description": "Section word translation", + "value": "Section" + }, + "testProcessProcedure": { + "description": "Tests results processing procedure name", + "value": "Process" + }, + "testsModule": { + "description": "Main tests module name", + "value": "OPI_Tests" + }, + "testsModuleCLI": { + "description": "CLI test module name", + "value": "OPI_TestsCLI" + }, + "testsDataModule": { + "description": "Test data module path", + "value": "./src/en/OInt/tests/Modules/internal/Modules/OPI_TestDataRetrieval.os" + }, + "testsTableMethod": { + "description": "Test table retrieve method", + "value": "GetTestTable" + }, + "testsSectionsMethod": { + "description": "Test selections array retrieve method (for Jenkins)", + "value": "GetTestingSectionMapping" + }, + "testsSectionsMethodGA": { + "dictionaries": "Test selections array retrieve method (for Github Actions)", + "value": "GetTestingSectionMappingGA" + }, + "docsMdSrc": { + "description": "Docs MD files directory", + "value": "./docs/en/md/" + }, + "codeExamplesSrc": { + "description": "Docs code examples directory", + "value": "./docs/en/examples/" + }, + "testValuesSrc": { + "description": "Docs test values directory", + "value": "./docs/en/data/" + }, + "testsModulePath": { + "description": "Main tests module path", + "value": "./src/en/OInt/tests/Modules/OPI_Tests.os" + }, + "testsCliModulePath": { + "description": "CLI test module path", + "value": "./src/en/OInt/tests/Modules/OPI_TestsCLI.os" + }, + "testsRegionName": { + "description": "Atomic test retrieve method", + "value": "AtomicTests" + }, + "packageDescriptionSrc": { + "description": "Package description filepath", + "value": "./service/templates/package_description_en.txt" + }, + "remoteDocsSrc": { + "description": "Docs directory on remote server (hosting)", + "value": "public_html_en" + }, + "namesTranslation": { + "description": "Modules names localization", + "value": { + "OPI_Инструменты": "OPI_Tools", + "OPI_Криптография": "OPI_Cryptography", + "OPI_HTTPКлиент": "OPI_HTTPClient", + "OPI_Компоненты": "OPI_AddIns", + "OPI_ЗапросыHTTP": "OPI_HTTPRequests", + "OPI_ЗапросыSQL": "OPI_SQLQueries", + "OPI_ПолучениеДанныхТестов": "OPI_TestDataRetrieval", + "OPI_ПреобразованиеТипов": "OPI_TypeConversion" + } + }, + "docsUrl": { + "description": "Docs website URL", + "value": "https://en.openintegrations.dev" + }, + "docsCategories": { + "description": "Docs categories and classes", + "value": { + "Messenger": "Messengers", + "Social": "Social networks", + "Database": "Databases and spreadsheets", + "Folder": "File-hosting services and storages", + "CRM": "Complete solutions (CMS, CRM)", + "Commerce": "E-commerce and delivery", + "Calendar": "Planning and projects management", + "AI": "Artificial Intelligence", + "Exchange": "Exchange protocols", + "Other": "Other" + } + } + } + } + } + } + } + }, + "packaging": { + "description": "Linux distribution options", + "value": { + "maintainer": { + "description": "Maintainer data", + "value": "Anton Titovets " + }, + "postinstScript": { + "description": "Postinstall script path", + "value": "./service/templates/postinst.sh" + }, + "postrmScript": { + "description": "Post-removal script path", + "value": "./service/templates/postrm.sh" + }, + "packageTypes": { + "description": "Package data by type", + "value": { + "deb": { + "description": "DEB packages options", + "value": { + "buildScript": { + "description": "FPM-based shell script", + "value": "./service/templates/builddeb.sh" + }, + "wslDistro": { + "description": "WSL linux distro", + "value": "Ubuntu" + } + } + }, + "rpm": { + "description": "RPM packages options", + "value": { + "buildScript": { + "description": "FPM-based shell script", + "value": "./service/templates/buildrpm.sh" + }, + "wslDistro": { + "description": "WSL linux distro", + "value": "OracleLinux_9_1" + } + } + } + } + }, + "appimageSettings": { + "description": "AppImage packages options", + "value": { + "wslDistro": { + "description": "WSL linux distro", + "value": "Ubuntu" + } + } + } + } + }, + "ai": { + "description": "AI settings", + "value": { + "useAi": { + "description": "Use processes with external AI services", + "value": true + }, + "openAiUrl": { + "description": "OpenAI-compatible service URL", + "value": "https://bothub.chat/api/v2/openai/" + }, + "textModel": { + "description": "AI model for text-based operations", + "value": "claude-sonnet-4.5" + }, + "tokenField": { + "description": "Token filed key at secret data file", + "value": "CI_AI_Token" + } + } + }, + "sonar": { + "description": "SonarQube data", + "value": { + "serverUrl": { + "description": "SonarQube server URL", + "value": "https://sonar.openintegrations.dev/" + }, + "projectKey": { + "description": "SonarQube project name", + "value": "OpenIntegrations" + }, + "tokenField": { + "description": "Secret token field in credentials file", + "value": "CI_Sonar_Token" + } + } + }, + "sourceforge": { + "description": "SourceForge credentials", + "value": { + "login": { + "description": "SourceForge username", + "value": "bayselonarrend" + }, + "projectName": { + "description": "SourceForge project name", + "value": "openintegrations" + }, + "hostUrl": { + "description": "SourceForge upload server URL", + "value": "frs.sourceforge.net" + }, + "privateKey": { + "description": "SourceForge auth private key", + "value": "D:/Important/id_ed25519" + }, + "publicKey": { + "description": "SourceForge auth private key", + "value": "D:/Important/id_ed25519.pub" + } + } + }, + "github": { + "description": "GitHub credentials", + "value": { + "tokenField": { + "description": "GitHub Access token field", + "value": "CI_GH_Token" + }, + "contentPath": { + "description": "Base URL for raw media content", + "value": "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/" + } + } + }, + "sourcecraft": { + "description": "SourceCraft credentials", + "value": { + "tokenField": { + "description": "SourceCraft Access token field", + "value": "CI_SC_Token" + }, + "contentPath": { + "description": "Base URL for raw media content", + "value": "https://sourcecraft.dev/file?owner=bayselonarrend&repo=openintegrations&rev=main&path=" + } + } + }, + "oscript": { + "description": "OneScript and OPM options", + "value": { + "dependencies": { + "description": "OPM dependencies", + "value": [ + "osparser", + "cmdline", + "asserts", + "coloratos" + ] + } + } + }, + "replacements": { + "description": "Dictionary of values replacements", + "value": { + "oscriptConvertation": { + "description": "Replacements for 1C to OneScript conversion", + "value": { + "// #Использовать": "#Использовать", + "//#Использовать": "#Использовать", + "УстановитьБезопасныйРежим(Истина);": "", + "УстановитьБезопасныйРежим(Ложь);": "", + "// !OInt ": "", + "#КонецЕсли": "// #КонецЕсли", + "#Если": "// #Если" + } + } } - } - } - } } - } - } - }, - "packaging": { - "description": "Linux distribution options", - "value": { - "maintainer": { - "description": "Maintainer data", - "value": "Anton Titovets " - }, - "postinstScript": { - "description": "Postinstall script path", - "value": "./service/templates/postinst.sh" - }, - "postrmScript": { - "description": "Post-removal script path", - "value": "./service/templates/postrm.sh" - }, - "packageTypes": { - "description": "Package data by type", - "value": { - "deb": { - "description": "DEB packages options", - "value": { - "buildScript": { - "description": "FPM-based shell script", - "value": "./service/templates/builddeb.sh" - }, - "wslDistro": { - "description": "WSL linux distro", - "value": "Ubuntu" - } - } - }, - "rpm": { - "description": "RPM packages options", - "value": { - "buildScript": { - "description": "FPM-based shell script", - "value": "./service/templates/buildrpm.sh" - }, - "wslDistro": { - "description": "WSL linux distro", - "value": "OracleLinux_9_1" - } - } - } - } - }, - "appimageSettings": { - "description": "AppImage packages options", - "value": { - "wslDistro": { - "description": "WSL linux distro", - "value": "Ubuntu" - } - } - } - } - }, - "ai": { - "description": "AI settings", - "value": { - "useAi": { - "description": "Use processes with external AI services", - "value": true - }, - "openAiUrl": { - "description": "OpenAI-compatible service URL", - "value": "https://bothub.chat/api/v2/openai/" - }, - "textModel": { - "description": "AI model for text-based operations", - "value": "claude-sonnet-4.5" - }, - "tokenField": { - "description": "Token filed key at secret data file", - "value": "CI_AI_Token" - } - } - }, - "sonar": { - "description": "SonarQube data", - "value": { - "serverUrl": { - "description": "SonarQube server URL", - "value": "https://sonar.openintegrations.dev/" - }, - "projectKey": { - "description": "SonarQube project name", - "value": "OpenIntegrations" - }, - "tokenField": { - "description": "Secret token field in credentials file", - "value": "CI_Sonar_Token" - } - } - }, - "sourceforge": { - "description": "SourceForge credentials", - "value": { - "login": { - "description": "SourceForge username", - "value": "bayselonarrend" - }, - "projectName": { - "description": "SourceForge project name", - "value": "openintegrations" - }, - "hostUrl": { - "description": "SourceForge upload server URL", - "value": "frs.sourceforge.net" - }, - "privateKey": { - "description": "SourceForge auth private key", - "value": "D:/Important/id_ed25519" - }, - "publicKey": { - "description": "SourceForge auth private key", - "value": "D:/Important/id_ed25519.pub" - } - } - }, - "github": { - "description": "GitHub credentials", - "value": { - "tokenField": { - "description": "GitHub Access token field", - "value": "CI_GH_Token" - } - } - }, - "sourcecraft": { - "description": "SourceCraft credentials", - "value": { - "tokenField": { - "description": "SourceCraft Access token field", - "value": "CI_SC_Token" - } - } - }, - "oscript": { - "description": "OneScript and OPM options", - "value": { - "dependencies": { - "description": "OPM dependencies", - "value": [ - "osparser", - "cmdline", - "asserts", - "coloratos" - ] - } - } - }, - "replacements": { - "description": "Dictionary of values replacements", - "value": { - "oscriptConvertation": { - "description": "Replacements for 1C to OneScript conversion", - "value": { - "// #Использовать": "#Использовать", - "//#Использовать": "#Использовать", - "УстановитьБезопасныйРежим(Истина);": "", - "УстановитьБезопасныйРежим(Ложь);": "", - "// !OInt ": "", - "#КонецЕсли": "// #КонецЕсли", - "#Если": "// #Если" - } - } - } - } } \ No newline at end of file diff --git a/ci/os/internal/Classes/DraftMethods.os b/ci/os/internal/Classes/DraftMethods.os index 05bd10ae58..612a6734e5 100644 --- a/ci/os/internal/Classes/DraftMethods.os +++ b/ci/os/internal/Classes/DraftMethods.os @@ -3,6 +3,8 @@ #Использовать "../../../../src/ru/OInt/tools/main" Перем ДанныеПроекта; +Перем Версия; +Перем КаталогШаблонов; Процедура ПриСозданииОбъекта(Знач ДанныеПроекта_ = Неопределено) @@ -14,16 +16,34 @@ CommonTools.СообщитьПроцесс("Draft initialization"); - СоздатьДрафтGithub(); - СоздатьДрафтSourcecraft(); + Версия = ДанныеПроекта.ПолучитьЗначениеНастройки("primary.version"); + КаталогШаблонов = ДанныеПроекта.ПолучитьЗначениеНастройки("paths.templatesSrc"); + + ПутьФайлаChangelog = "./service/releases.json"; + ДанныеChangelog = CommonTools.ПрочитатьФайлJSON(ПутьФайлаChangelog); + ДанныеТекущего = Неопределено; + + Для Каждого Релиз Из ДанныеChangelog Цикл + Если Релиз["version"] = Версия Тогда + ДанныеТекущего = Релиз; + Прервать; + КонецЕсли; + КонецЦикла; + + Если ДанныеТекущего = Неопределено Тогда + ВызватьИсключение "Changelog for current version not found!"; + КонецЕсли; + + СоздатьДрафтGithub(ДанныеТекущего); + СоздатьДрафтSourcecraft(ДанныеТекущего); КонецПроцедуры -Процедура СоздатьДрафтGithub() +Процедура СоздатьДрафтGithub(Знач Данные) - ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("github.tokenField"); - Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена); - Версия = ДанныеПроекта.ПолучитьЗначениеНастройки("primary.version"); + ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("github.tokenField"); + URLКонтента = ДанныеПроекта.ПолучитьЗначениеНастройки("github.contentPath"); + Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена); СписокРелизов = OPI_ЗапросыHTTP .НовыйЗапрос() @@ -32,13 +52,14 @@ .ОбработатьЗапрос("GET") .ВернутьОтветКакJSONКоллекцию(); + IDРелиза = Неопределено; + Попытка Для Каждого Релиз Из СписокРелизов Цикл Если Релиз["tag_name"] = "draft" Тогда - CommonTools.СообщитьПроцесс("GitHub: Draft already exist"); - Возврат; + IDРелиза = Релиз["id"]; КонецЕсли; Если Релиз["tag_name"] = Версия Тогда @@ -52,39 +73,77 @@ ВызватьИсключение OPI_Инструменты.JSONСтрокой(СписокРелизов); КонецПопытки; - КаталогШаблонов = ДанныеПроекта.ПолучитьЗначениеНастройки("paths.templatesSrc"); - - CommonTools.СообщитьПроцесс("GitHub: Init new draft..."); + Если IDРелиза = Неопределено Тогда + CommonTools.СообщитьПроцесс("GitHub: Init new draft..."); + Иначе + CommonTools.СообщитьПроцесс("GitHub: Update draft..."); + OPI_ПреобразованиеТипов.ПолучитьСтроку(IDРелиза); + КонецЕсли; ПутьШаблона = ОбъединитьПути(КаталогШаблонов, "gh_draft.txt"); ШаблонДрафта = ПолучитьСтрокуИзДвоичныхДанных(Новый ДвоичныеДанные(ПутьШаблона)); - ТекстДрафта = СтрШаблон(ШаблонДрафта, Версия); - ТекущаяДата = Формат(ТекущаяДата(), "ДЛФ=D"); + + МассивИзменений = Новый Массив; + ШаблонИзменений = "| | %3 | %4 |"; + + Для Каждого Изменение Из Данные["changes"] Цикл + + ТекущееИзменение = СтрШаблон(ШаблонИзменений + , URLКонтента + , Изменение["icon"] + , Изменение["description_ru"] + , Изменение["description_en"]); + + МассивИзменений.Добавить(ТекущееИзменение); + + КонецЦикла; + + ТекстДрафта = СтрШаблон(ШаблонДрафта + , Версия + , Данные["summary_ru"] + , Данные["summary_en"] + , СтрСоединить(МассивИзменений, Символы.ПС) + , URLКонтента + , Данные["image"]); СтруктураЗапроса = Новый Структура; СтруктураЗапроса.Вставить("tag_name" , "draft"); - СтруктураЗапроса.Вставить("name" , СтрШаблон("Version %1 - %2", Версия, ТекущаяДата)); + СтруктураЗапроса.Вставить("name" , Данные["title"]); СтруктураЗапроса.Вставить("body" , ТекстДрафта); СтруктураЗапроса.Вставить("draft" , Истина); СтруктураЗапроса.Вставить("prerelease" , Ложь); - СозданиеДрафта = OPI_ЗапросыHTTP - .НовыйЗапрос() - .Инициализировать("https://api.github.com/repos/bayselonarrend/OpenIntegrations/releases") - .ДобавитьBearerАвторизацию(Токен) - .УстановитьJsonТело(СтруктураЗапроса) - .ОбработатьЗапрос("POST") - .ВернутьОтветКакСтроку(); + Если ЗначениеЗаполнено(IDРелиза) Тогда - CommonTools.СообщитьПроцесс(СозданиеДрафта); + Результат = OPI_ЗапросыHTTP + .НовыйЗапрос() + .Инициализировать(СтрШаблон("https://api.github.com/repos/bayselonarrend/OpenIntegrations/releases/%1", IDРелиза)) + .ДобавитьBearerАвторизацию(Токен) + .УстановитьJsonТело(СтруктураЗапроса) + .ОбработатьЗапрос("PATCH") + .ВернутьОтветКакСтроку(); + + Иначе + + Результат = OPI_ЗапросыHTTP + .НовыйЗапрос() + .Инициализировать("https://api.github.com/repos/bayselonarrend/OpenIntegrations/releases") + .ДобавитьBearerАвторизацию(Токен) + .УстановитьJsonТело(СтруктураЗапроса) + .ОбработатьЗапрос("POST") + .ВернутьОтветКакСтроку(); + + КонецЕсли; + + CommonTools.СообщитьПроцесс(Результат); КонецПроцедуры -Процедура СоздатьДрафтSourcecraft() +Процедура СоздатьДрафтSourcecraft(Знач Данные) - ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("sourcecraft.tokenField"); - Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена); - Версия = ДанныеПроекта.ПолучитьЗначениеНастройки("primary.version"); + ПолеТокена = ДанныеПроекта.ПолучитьЗначениеНастройки("sourcecraft.tokenField"); + URLКонтента = ДанныеПроекта.ПолучитьЗначениеНастройки("sourcecraft.contentPath"); + Токен = ДанныеПроекта.ПолучитьЗначениеСекретныхДанных(ПолеТокена); СписокРелизов = OPI_ЗапросыHTTP .НовыйЗапрос() @@ -93,13 +152,14 @@ .ОбработатьЗапрос("GET") .ВернутьОтветКакJSONКоллекцию(); + IDРелиза = Неопределено; + Попытка Для Каждого Релиз Из СписокРелизов["releases"] Цикл Если Релиз["tag"] = "draft" Тогда - CommonTools.СообщитьПроцесс("SourceCraft: Draft already exist"); - Возврат; + IDРелиза = Релиз["id"]; КонецЕсли; Если Релиз["tag"] = Версия Тогда @@ -112,30 +172,72 @@ Исключение ВызватьИсключение OPI_Инструменты.JSONСтрокой(СписокРелизов); КонецПопытки; - - КаталогШаблонов = ДанныеПроекта.ПолучитьЗначениеНастройки("paths.templatesSrc"); - CommonTools.СообщитьПроцесс("SourceCraft: Init new draft..."); + Если IDРелиза = Неопределено Тогда + CommonTools.СообщитьПроцесс("SourceCraft: Init new draft..."); + Иначе + CommonTools.СообщитьПроцесс("SourceCraft: Update draft..."); + OPI_ПреобразованиеТипов.ПолучитьСтроку(IDРелиза); + КонецЕсли; ПутьШаблона = ОбъединитьПути(КаталогШаблонов, "sc_draft.txt"); ШаблонДрафта = ПолучитьСтрокуИзДвоичныхДанных(Новый ДвоичныеДанные(ПутьШаблона)); - ТекстДрафта = СтрШаблон(ШаблонДрафта, Версия); - ТекущаяДата = Формат(ТекущаяДата(), "ДЛФ=D"); + + МассивИзменений = Новый Массив; + ШаблонИзменений = "| | %3 | %4 |"; + + Для Каждого Изменение Из Данные["changes"] Цикл + + ТекущееИзменение = СтрШаблон(ШаблонИзменений + , URLКонтента + , Изменение["icon"] + , Изменение["description_ru"] + , Изменение["description_en"]); + + МассивИзменений.Добавить(ТекущееИзменение); + + КонецЦикла; + + ТекстДрафта = СтрШаблон(ШаблонДрафта + , Версия + , Данные["summary_ru"] + , Данные["summary_en"] + , СтрСоединить(МассивИзменений, Символы.ПС) + , URLКонтента + , Данные["image"]); СтруктураЗапроса = Новый Структура; - СтруктураЗапроса.Вставить("tag" , "draft"); - СтруктураЗапроса.Вставить("title" , СтрШаблон("Version %1 - %2", Версия, ТекущаяДата)); - СтруктураЗапроса.Вставить("release_notes" , ТекстДрафта); - СтруктураЗапроса.Вставить("publish" , Ложь); - СозданиеДрафта = OPI_ЗапросыHTTP - .НовыйЗапрос() - .Инициализировать("https://api.sourcecraft.tech/repos/bayselonarrend/openintegrations/releases") - .ДобавитьBearerАвторизацию(Токен) - .УстановитьJsonТело(СтруктураЗапроса) - .ОбработатьЗапрос("POST") - .ВернутьОтветКакСтроку(); + Если ЗначениеЗаполнено(IDРелиза) Тогда - CommonTools.СообщитьПроцесс(СозданиеДрафта); + СтруктураЗапроса.Вставить("title" , Данные["title"]); + СтруктураЗапроса.Вставить("release_notes" , ТекстДрафта); + + Результат = OPI_ЗапросыHTTP + .НовыйЗапрос() + .Инициализировать(СтрШаблон("https://api.sourcecraft.tech/releases/id:%1", IDРелиза)) + .ДобавитьBearerАвторизацию(Токен) + .УстановитьJsonТело(СтруктураЗапроса) + .ОбработатьЗапрос("PATCH") + .ВернутьОтветКакСтроку(); + + Иначе + + СтруктураЗапроса.Вставить("tag" , "draft"); + СтруктураЗапроса.Вставить("title" , Данные["title"]); + СтруктураЗапроса.Вставить("release_notes" , ТекстДрафта); + СтруктураЗапроса.Вставить("publish" , Ложь); + + Результат = OPI_ЗапросыHTTP + .НовыйЗапрос() + .Инициализировать("https://api.sourcecraft.tech/repos/bayselonarrend/openintegrations/releases") + .ДобавитьBearerАвторизацию(Токен) + .УстановитьJsonТело(СтруктураЗапроса) + .ОбработатьЗапрос("POST") + .ВернутьОтветКакСтроку(); + + КонецЕсли; + + CommonTools.СообщитьПроцесс(Результат); КонецПроцедуры \ No newline at end of file diff --git a/ci/os/internal/Classes/internal/Modules/CommonTools.os b/ci/os/internal/Classes/internal/Modules/CommonTools.os index 86871618fb..f83a47f5ea 100644 --- a/ci/os/internal/Classes/internal/Modules/CommonTools.os +++ b/ci/os/internal/Classes/internal/Modules/CommonTools.os @@ -13,7 +13,7 @@ Процедура ЗаписатьФайлJSON(Знач Путь, Знач Данные) Экспорт Запись = Новый ЗаписьJSON; - ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Unix, Символы.Таб); + ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Unix, " "); Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON); ЗаписатьJSON(Запись, Данные); Запись.Закрыть(); diff --git a/service/releases.json b/service/releases.json new file mode 100644 index 0000000000..77bba75898 --- /dev/null +++ b/service/releases.json @@ -0,0 +1,35 @@ +[ + { + "version": "1.34.0", + "title": "Version 1.34.0 - 0.04.2026", + "summary_ru": "Методы работы с RSS", + "summary_en": "Methods of working with RSS", + "image": "media/Covers/RSS.png", + "changes": [ + { + "lib": "RSS", + "icon": "media/RSS.png", + "description_ru": "Методы формирования RSS (3 функции)", + "description_en": "RSS generation methods (3 functions)" + }, + { + "lib": "RSS", + "icon": "media/RSS.png", + "description_ru": "Методы формирования Atom (3 функции)", + "description_en": "Atom generation methods (3 functions)" + }, + { + "lib": "TCP", + "icon": "media/TCP.png", + "description_ru": "Добавлен функционал TCP-сервера", + "description_en": "Added TCP server functionality" + }, + { + "lib": "All", + "icon": "media/logo.png", + "description_ru": "Исправлен баг вывода справки CLI для `tcp` и `ssh`", + "description_en": "Fixed CLI help output bug for `tcp` and `ssh`" + } + ] + } +] \ No newline at end of file diff --git a/service/templates/.~lock.Report_simple.xlsx# b/service/templates/.~lock.Report_simple.xlsx# new file mode 100644 index 0000000000..ebbbcbc298 --- /dev/null +++ b/service/templates/.~lock.Report_simple.xlsx# @@ -0,0 +1 @@ +,T480/bayselonarrend,T480,15.03.2026 11:29,file:///C:/Users/bayselonarrend/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/service/templates/Report_simple.pdf b/service/templates/Report_simple.pdf index 5cc71ff903..ed5eede0b1 100644 Binary files a/service/templates/Report_simple.pdf and b/service/templates/Report_simple.pdf differ diff --git a/service/templates/Report_simple.xlsx b/service/templates/Report_simple.xlsx index 32c4dd2e2c..9e4e4d996f 100644 Binary files a/service/templates/Report_simple.xlsx and b/service/templates/Report_simple.xlsx differ diff --git a/service/templates/gh_draft.txt b/service/templates/gh_draft.txt index ee2c1d1f97..890efda1eb 100644 --- a/service/templates/gh_draft.txt +++ b/service/templates/gh_draft.txt @@ -1,7 +1,7 @@ -![cover](https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/refs/heads/main/media/Covers/blank.png) +![cover](%5%6) -🇷🇺: Обновление Открытого пакета интеграций %1: Методы работы -🇺🇸: Open integrations package update %1: Methods of working with +🇷🇺: Обновление Открытого пакета интеграций %1: %2 +🇺🇸: Open integrations package update %1: %3 ## Новые функции / New functions @@ -10,8 +10,7 @@ | API | 🇷🇺 | 🇺🇸 | |-|-|-| -| | Шаблон | Template | - +%4 ## Скачать / Download diff --git a/service/templates/sc_draft.txt b/service/templates/sc_draft.txt index 46f4012ec0..d2a0482542 100644 --- a/service/templates/sc_draft.txt +++ b/service/templates/sc_draft.txt @@ -1,9 +1,9 @@ -![cover](https://sourcecraft.dev/file?owner=bayselonarrend&repo=openintegrations&rev=main&path=media/Covers/SSH.png) +![cover](%5%6)
-**🇷🇺: Обновление Открытого пакета интеграций %1: Методы работы** -**🇺🇸: Open integrations package update %1: Methods of working with** +**🇷🇺: Обновление Открытого пакета интеграций %1: %2** +**🇺🇸: Open integrations package update %1: %3**
@@ -14,7 +14,7 @@ | API | 🇷🇺 | 🇺🇸 | |-|-|-| -| | Шаблон | Template | +%4