You've already forked OpenIntegrations
							
							
				mirror of
				https://github.com/Bayselonarrend/OpenIntegrations.git
				synced 2025-10-30 23:47:46 +02:00 
			
		
		
		
	Main build (Jenkins)
This commit is contained in:
		
							
								
								
									
										16
									
								
								ci/clitesten
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								ci/clitesten
									
									
									
									
										vendored
									
									
								
							| @@ -11,6 +11,11 @@ pipeline { | ||||
|           stage('Run Tests') { | ||||
|              parallel { | ||||
|  | ||||
|           stage('proxy'){ | ||||
|              steps{ | ||||
|                 test_proxy() | ||||
|              } | ||||
|           } | ||||
|           stage('tools'){ | ||||
|              steps{ | ||||
|                 test_tools() | ||||
| @@ -147,6 +152,16 @@ pipeline { | ||||
| } | ||||
|  | ||||
|  | ||||
| def test_proxy(){ | ||||
| 					 | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe proxy Start --port "test" --proj "test" --pass "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| def test_tools(){ | ||||
| 					 | ||||
|  | ||||
| @@ -2860,6 +2875,7 @@ pipeline { | ||||
|       } | ||||
|       stage('Run'){ | ||||
|          steps{ | ||||
| test_proxy() | ||||
| test_tools() | ||||
| test_airtable() | ||||
| test_bitrix24() | ||||
|   | ||||
							
								
								
									
										16
									
								
								ci/clitestru
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								ci/clitestru
									
									
									
									
										vendored
									
									
								
							| @@ -11,6 +11,11 @@ pipeline { | ||||
|           stage('Run Tests') { | ||||
|              parallel { | ||||
|  | ||||
|           stage('proxy'){ | ||||
|              steps{ | ||||
|                 test_proxy() | ||||
|              } | ||||
|           } | ||||
|           stage('tools'){ | ||||
|              steps{ | ||||
|                 test_tools() | ||||
| @@ -147,6 +152,16 @@ pipeline { | ||||
| } | ||||
|  | ||||
|  | ||||
| def test_proxy(){ | ||||
| 					 | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe proxy Запустить --port "test" --proj "test" --pass "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| def test_tools(){ | ||||
| 					 | ||||
|  | ||||
| @@ -2860,6 +2875,7 @@ pipeline { | ||||
|       } | ||||
|       stage('Run'){ | ||||
|          steps{ | ||||
| test_proxy() | ||||
| test_tools() | ||||
| test_airtable() | ||||
| test_bitrix24() | ||||
|   | ||||
| @@ -46,4 +46,119 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```json title="Результат" | ||||
| { | ||||
|  "result": { | ||||
|   "ID": "62", | ||||
|   "PARENT_ID": "62", | ||||
|   "DELETED": "N", | ||||
|   "CAL_TYPE": "user", | ||||
|   "OWNER_ID": "1", | ||||
|   "NAME": "Новое событие", | ||||
|   "DATE_FROM": "28.01.2025 22:29:00", | ||||
|   "DATE_TO": "28.01.2025 23:29:00", | ||||
|   "ORIGINAL_DATE_FROM": null, | ||||
|   "TZ_FROM": "Europe/Minsk", | ||||
|   "TZ_TO": "Europe/Minsk", | ||||
|   "TZ_OFFSET_FROM": "10800", | ||||
|   "TZ_OFFSET_TO": "10800", | ||||
|   "DATE_FROM_TS_UTC": "1738081739", | ||||
|   "DATE_TO_TS_UTC": "1740688140", | ||||
|   "DT_SKIP_TIME": "N", | ||||
|   "DT_LENGTH": 3600, | ||||
|   "EVENT_TYPE": null, | ||||
|   "CREATED_BY": "1", | ||||
|   "DATE_CREATE": "27.01.2025 22:28:59", | ||||
|   "TIMESTAMP_X": "27.01.2025 22:28:59", | ||||
|   "DESCRIPTION": "Описание события", | ||||
|   "PRIVATE_EVENT": "", | ||||
|   "ACCESSIBILITY": "busy", | ||||
|   "IMPORTANCE": "high", | ||||
|   "IS_MEETING": true, | ||||
|   "MEETING_STATUS": "H", | ||||
|   "MEETING_HOST": "1", | ||||
|   "MEETING": { | ||||
|    "HOST_NAME": "Антон Титовец", | ||||
|    "TEXT": null, | ||||
|    "OPEN": false, | ||||
|    "NOTIFY": true, | ||||
|    "REINVITE": false, | ||||
|    "MAIL_FROM": false | ||||
|   }, | ||||
|   "LOCATION": "Офис", | ||||
|   "REMIND": [ | ||||
|    { | ||||
|     "type": "day", | ||||
|     "count": 1 | ||||
|    } | ||||
|   ], | ||||
|   "COLOR": "#230000", | ||||
|   "RRULE": { | ||||
|    "FREQ": "DAILY", | ||||
|    "COUNT": 3, | ||||
|    "INTERVAL": 10, | ||||
|    "UNTIL": "01.01.2038", | ||||
|    "~UNTIL": "", | ||||
|    "UNTIL_TS": 2145916800 | ||||
|   }, | ||||
|   "EXDATE": "", | ||||
|   "DAV_XML_ID": "20250128T192900Z-165159ccf926f8fd81fef570b48b3c08@b24-ar17wx.bitrix24.by", | ||||
|   "G_EVENT_ID": "", | ||||
|   "DAV_EXCH_LABEL": "", | ||||
|   "CAL_DAV_LABEL": "", | ||||
|   "VERSION": "1", | ||||
|   "ATTENDEES_CODES": [ | ||||
|    "U1", | ||||
|    "U10" | ||||
|   ], | ||||
|   "RECURRENCE_ID": null, | ||||
|   "RELATIONS": "", | ||||
|   "SECTION_ID": "134", | ||||
|   "SYNC_STATUS": null, | ||||
|   "UF_CRM_CAL_EVENT": false, | ||||
|   "UF_WEBDAV_CAL_EVENT": false, | ||||
|   "SECTION_DAV_XML_ID": null, | ||||
|   "DATE_FROM_FORMATTED": "Tue Jan 28 2025 22:29:00", | ||||
|   "DATE_TO_FORMATTED": "Tue Jan 28 2025 23:29:00", | ||||
|   "SECT_ID": "134", | ||||
|   "OPTIONS": null, | ||||
|   "ATTENDEE_LIST": [ | ||||
|    { | ||||
|     "id": 1, | ||||
|     "entryId": "62", | ||||
|     "status": "H" | ||||
|    }, | ||||
|    { | ||||
|     "id": 10, | ||||
|     "entryId": "64", | ||||
|     "status": "Q" | ||||
|    } | ||||
|   ], | ||||
|   "COLLAB_ID": null, | ||||
|   "~RRULE_DESCRIPTION": "каждый 10-й день, от 28.01.2025, 3 раз(а)", | ||||
|   "attendeesEntityList": [ | ||||
|    { | ||||
|     "entityId": "user", | ||||
|     "id": 1 | ||||
|    }, | ||||
|    { | ||||
|     "entityId": "user", | ||||
|     "id": 10 | ||||
|    } | ||||
|   ], | ||||
|   "~DESCRIPTION": "Описание события", | ||||
|   "~USER_OFFSET_FROM": 0, | ||||
|   "~USER_OFFSET_TO": 0 | ||||
|  }, | ||||
|  "time": { | ||||
|   "start": 1738006140.14556, | ||||
|   "finish": 1738006140.19252, | ||||
|   "duration": 0.0469579696655273, | ||||
|   "processing": 0.0220499038696289, | ||||
|   "date_start": "2025-01-27T22:29:00+03:00", | ||||
|   "date_finish": "2025-01-27T22:29:00+03:00", | ||||
|   "operating_reset_at": 1738006740, | ||||
|   "operating": 0 | ||||
|  } | ||||
| } | ||||
| ``` | ||||
|   | ||||
| @@ -63,4 +63,156 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```json title="Результат" | ||||
| { | ||||
|  "result": [ | ||||
|   { | ||||
|    "ID": "58", | ||||
|    "PARENT_ID": "58", | ||||
|    "ACTIVE": "Y", | ||||
|    "DELETED": "N", | ||||
|    "CAL_TYPE": "user", | ||||
|    "OWNER_ID": "1", | ||||
|    "NAME": "Новое событие", | ||||
|    "DATE_FROM": "28.01.2025 22:29:00", | ||||
|    "DATE_TO": "28.01.2025 23:29:00", | ||||
|    "ORIGINAL_DATE_FROM": null, | ||||
|    "TZ_FROM": "Europe/Minsk", | ||||
|    "TZ_TO": "Europe/Minsk", | ||||
|    "TZ_OFFSET_FROM": "10800", | ||||
|    "TZ_OFFSET_TO": "10800", | ||||
|    "DATE_FROM_TS_UTC": "1738081739", | ||||
|    "DATE_TO_TS_UTC": "1740688140", | ||||
|    "DT_SKIP_TIME": "N", | ||||
|    "DT_LENGTH": 3600, | ||||
|    "EVENT_TYPE": null, | ||||
|    "CREATED_BY": "1", | ||||
|    "DATE_CREATE": "27.01.2025 22:28:59", | ||||
|    "TIMESTAMP_X": "27.01.2025 22:28:59", | ||||
|    "DT_FROM": null, | ||||
|    "DT_TO": null, | ||||
|    "PRIVATE_EVENT": "", | ||||
|    "ACCESSIBILITY": "busy", | ||||
|    "IMPORTANCE": "high", | ||||
|    "IS_MEETING": true, | ||||
|    "MEETING_STATUS": "H", | ||||
|    "MEETING_HOST": "1", | ||||
|    "MEETING": { | ||||
|     "HOST_NAME": "Антон Титовец", | ||||
|     "TEXT": null, | ||||
|     "OPEN": false, | ||||
|     "NOTIFY": true, | ||||
|     "REINVITE": false, | ||||
|     "MAIL_FROM": false | ||||
|    }, | ||||
|    "LOCATION": "Офис", | ||||
|    "REMIND": [ | ||||
|     { | ||||
|      "type": "day", | ||||
|      "count": 1 | ||||
|     } | ||||
|    ], | ||||
|    "COLOR": "#230000", | ||||
|    "TEXT_COLOR": "", | ||||
|    "RRULE": { | ||||
|     "FREQ": "DAILY", | ||||
|     "COUNT": 3, | ||||
|     "INTERVAL": 10, | ||||
|     "UNTIL": "01.01.2038", | ||||
|     "~UNTIL": "", | ||||
|     "UNTIL_TS": 2145916800 | ||||
|    }, | ||||
|    "EXDATE": "", | ||||
|    "DAV_XML_ID": "20250128T192900Z-165159ccf926f8fd81fef570b48b3c08@b24-ar17wx.bitrix24.by", | ||||
|    "G_EVENT_ID": "", | ||||
|    "DAV_EXCH_LABEL": "", | ||||
|    "CAL_DAV_LABEL": "", | ||||
|    "VERSION": "1", | ||||
|    "ATTENDEES_CODES": [ | ||||
|     "U1", | ||||
|     "U10" | ||||
|    ], | ||||
|    "RECURRENCE_ID": null, | ||||
|    "RELATIONS": "", | ||||
|    "SECTION_ID": "132", | ||||
|    "SYNC_STATUS": null, | ||||
|    "UF_CRM_CAL_EVENT": false, | ||||
|    "UF_WEBDAV_CAL_EVENT": false, | ||||
|    "SECTION_DAV_XML_ID": null, | ||||
|    "DATE_FROM_FORMATTED": "Tue Jan 28 2025 22:29:00", | ||||
|    "DATE_TO_FORMATTED": "Tue Jan 28 2025 23:29:00", | ||||
|    "SECT_ID": "132", | ||||
|    "OPTIONS": null, | ||||
|    "ATTENDEE_LIST": [ | ||||
|     { | ||||
|      "id": 1, | ||||
|      "entryId": "58", | ||||
|      "status": "H" | ||||
|     }, | ||||
|     { | ||||
|      "id": 10, | ||||
|      "entryId": "60", | ||||
|      "status": "Q" | ||||
|     } | ||||
|    ], | ||||
|    "COLLAB_ID": null, | ||||
|    "~RRULE_DESCRIPTION": "каждый 10-й день, от 28.01.2025, 3 раз(а)", | ||||
|    "attendeesEntityList": [ | ||||
|     { | ||||
|      "entityId": "user", | ||||
|      "id": 1 | ||||
|     }, | ||||
|     { | ||||
|      "entityId": "user", | ||||
|      "id": 10 | ||||
|     } | ||||
|    ], | ||||
|    "~DATE_FROM": "28.01.2025 22:29:00", | ||||
|    "~DATE_TO": "28.01.2025 23:29:00", | ||||
|    "RINDEX": 0, | ||||
|    "~USER_OFFSET_FROM": 0, | ||||
|    "~USER_OFFSET_TO": 0 | ||||
|   }, | ||||
|   { | ||||
|    "ID": "62", | ||||
|    "PARENT_ID": "62", | ||||
|    "ACTIVE": "Y", | ||||
|    "DELETED": "N", | ||||
|    "CAL_TYPE": "user", | ||||
|    "OWNER_ID": "1", | ||||
|    "NAME": "Новое событие", | ||||
|    "DATE_FROM": "28.01.2025 22:29:00", | ||||
|    "DATE_TO": "28.01.2025 23:29:00", | ||||
|    "ORIGINAL_DATE_FROM": null, | ||||
|    "TZ_FROM": "Europe/Minsk", | ||||
|    "TZ_TO": "Europe/Minsk", | ||||
|    "TZ_OFFSET_FROM": "10800", | ||||
|    "TZ_OFFSET_TO": "10800", | ||||
|    "DATE_FROM_TS_UTC": "1738081739", | ||||
|    "DATE_TO_TS_UTC": "1740688140", | ||||
|    "DT_SKIP_TIME": "N", | ||||
|    "DT_LENGTH": 3600, | ||||
|    "EVENT_TYPE": null, | ||||
|    "CREATED_BY": "1", | ||||
|    "DATE_CREATE": "27.01.2025 22:28:59", | ||||
|    "TIMESTAMP_X": "27.01.2025 22:28:59", | ||||
|    "DT_FROM": null, | ||||
|    "DT_TO": null, | ||||
|    "PRIVATE_EVENT": "", | ||||
|    "ACCESSIBILITY": "busy", | ||||
|    "IMPORTANCE": "high", | ||||
|    "IS_MEETING": true, | ||||
|    "MEETING_STATUS": "H", | ||||
|    "MEETING_HOST": "1", | ||||
|    "MEETING": { | ||||
|     "HOST_NAME": "Антон Титовец", | ||||
|     "TEXT": null, | ||||
|     "OPEN": false, | ||||
|     "NOTIFY": true, | ||||
|     "REINVITE": false, | ||||
|     "MAIL_FROM": false | ||||
|    }, | ||||
|    "LOCATION": "Офис", | ||||
|    "REMIND": [ | ||||
| ... | ||||
| ``` | ||||
|   | ||||
							
								
								
									
										12606
									
								
								service/dictionaries/en.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12606
									
								
								service/dictionaries/en.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										8
									
								
								src/en/cli/tools/Modules/internal/Classes/internal/Modules/Меню.os
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/en/cli/tools/Modules/internal/Classes/internal/Modules/Меню.os
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| Процедура ОбработатьМеню(Контекст) Экспорт | ||||
| 	 | ||||
| 	Контекст.Ответ.Записать(" | ||||
| 	|<li hx-get=""/api/content/1"" hx-target=""#content"">Action 1</li> | ||||
| 	|<li hx-get=""/api/content/2"" hx-target=""#content"">Action 2</li> | ||||
| 	|<li hx-get=""/api/content/3"" hx-target=""#content"">Action 3</li>"); | ||||
|  | ||||
| КонецПроцедуры | ||||
							
								
								
									
										33
									
								
								src/en/cli/tools/Modules/internal/Classes/internal/Modules/Статика.os
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/en/cli/tools/Modules/internal/Classes/internal/Modules/Статика.os
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| Процедура ВернутьСтатику(Контекст, ПутьКФайлу) Экспорт | ||||
|  | ||||
| 	ПутьКФайлуСтатики = КаталогСтатики() + ПутьКФайлу; | ||||
| 	ФайлСтатики       = Новый Файл(ПутьКФайлуСтатики); | ||||
|  | ||||
| 	Если ФайлСтатики.Существует() Тогда | ||||
| 		Данные = Новый ФайловыйПоток(ПутьКФайлуСтатики, РежимОткрытияФайла.Открыть); | ||||
| 		Данные.КопироватьВ(Контекст.Ответ.Тело); | ||||
| 		Данные.Закрыть(); | ||||
| 	Иначе  | ||||
| 		Контекст.Ответ.КодСостояния = 404; | ||||
| 	КонецЕсли; | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Функция КаталогСтатики()  | ||||
|  | ||||
| 	КаталогОбработчика =  СтрЗаменить(ТекущийСценарий().Каталог, "\", "/"); | ||||
|  | ||||
| 	ЭлементыПути = СтрРазделить(КаталогОбработчика, "/"); | ||||
|  | ||||
| 	Для Н = 1 По 6 Цикл | ||||
|     	ЭлементыПути.Удалить(ЭлементыПути.ВГраница()); | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	ЭлементыПути.Добавить("web"); | ||||
|  | ||||
| 	ПутьСтатики = СтрСоединить(ЭлементыПути, "/"); | ||||
| 	ПутьСтатики = ПутьСтатики + "/"; | ||||
|  | ||||
| 	Возврат ПутьСтатики; | ||||
|  | ||||
| КонецФункции | ||||
| @@ -1,3 +1,34 @@ | ||||
| #Использовать "internal" | ||||
|  | ||||
| Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт | ||||
|  | ||||
| КонецПроцедуры | ||||
| 	Попытка  | ||||
| 		ОбработатьЗапрос(Контекст); | ||||
| 	Исключение | ||||
| 		Контекст.Ответ.КодСостояния = 500; | ||||
| 		Контекст.Ответ.Записать(ОписаниеОшибки()); | ||||
| 	КонецПопытки | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ОбработатьЗапрос(Контекст) | ||||
|  | ||||
| 	Путь = Контекст.Запрос.Путь; | ||||
|  | ||||
| 	Если Путь = "/web" Тогда | ||||
|  | ||||
| 		Статика.ВернутьСтатику(Контекст, "index.html"); | ||||
|  | ||||
| 	ИначеЕсли Путь = "/api/menu" Тогда | ||||
|  | ||||
| 		Меню.ОбработатьМеню(Контекст); | ||||
|  | ||||
| 	Иначе | ||||
|  | ||||
| 		Контекст.Ответ.КодСостояния = 404; | ||||
|  | ||||
| 	КонецЕсли; | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										54
									
								
								src/en/cli/web/index.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								src/en/cli/web/index.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="ru"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>GitHub Actions Interface with HTMX</title> | ||||
|     <script src="https://unpkg.com/htmx.org@1.9.10"></script> | ||||
|     <style> | ||||
|         body { | ||||
|             font-family: Arial, sans-serif; | ||||
|             margin: 0; | ||||
|             padding: 0; | ||||
|             display: flex; | ||||
|             height: 100vh; | ||||
|         } | ||||
|         .sidebar { | ||||
|             width: 200px; | ||||
|             background-color: #f4f4f4; | ||||
|             padding: 20px; | ||||
|             box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1); | ||||
|         } | ||||
|         .sidebar ul { | ||||
|             list-style-type: none; | ||||
|             padding: 0; | ||||
|         } | ||||
|         .sidebar ul li { | ||||
|             margin: 15px 0; | ||||
|             cursor: pointer; | ||||
|             color: #0366d6; | ||||
|         } | ||||
|         .sidebar ul li:hover { | ||||
|             text-decoration: underline; | ||||
|         } | ||||
|         .main-content { | ||||
|             flex-grow: 1; | ||||
|             padding: 20px; | ||||
|             background-color: #fff; | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| <body> | ||||
|     <div class="sidebar"> | ||||
|         <ul id="menu" hx-get="/api/menu" hx-trigger="load"> | ||||
|         </ul> | ||||
|     </div> | ||||
|  | ||||
|     <div class="main-content" id="content"> | ||||
|     </div> | ||||
|  | ||||
|     <template id="menu-item-template"> | ||||
|         <li hx-get="/api/content/{id}" hx-target="#content">{name}</li> | ||||
|     </template> | ||||
| </body> | ||||
| </html> | ||||
| @@ -2138,9 +2138,9 @@ | ||||
| КонецФункции | ||||
|  | ||||
| Функция ПолучитьОбщийМодуль(Знач Имя) | ||||
|      | ||||
|  | ||||
|     Модуль = Вычислить(Имя); | ||||
|      | ||||
|  | ||||
|     Возврат Модуль; | ||||
| КонецФункции | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user