1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-01-29 09:56:09 +03:00
parent e3c111b4cd
commit cb5e0c089d
10 changed files with 6733 additions and 6308 deletions

16
ci/clitesten vendored
View File

@@ -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
View File

@@ -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()

View File

@@ -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
}
}
```

View File

@@ -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": [
...
```

File diff suppressed because it is too large Load Diff

View 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>");
КонецПроцедуры

View File

@@ -0,0 +1,33 @@
Процедура ВернутьСтатику(Контекст, ПутьКФайлу) Экспорт
ПутьКФайлуСтатики = КаталогСтатики() + ПутьКФайлу;
ФайлСтатики = Новый Файл(ПутьКФайлуСтатики);
Если ФайлСтатики.Существует() Тогда
Данные = Новый ФайловыйПоток(ПутьКФайлуСтатики, РежимОткрытияФайла.Открыть);
Данные.КопироватьВ(Контекст.Ответ.Тело);
Данные.Закрыть();
Иначе
Контекст.Ответ.КодСостояния = 404;
КонецЕсли;
КонецПроцедуры
Функция КаталогСтатики()
КаталогОбработчика = СтрЗаменить(ТекущийСценарий().Каталог, "\", "/");
ЭлементыПути = СтрРазделить(КаталогОбработчика, "/");
Для Н = 1 По 6 Цикл
ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
КонецЦикла;
ЭлементыПути.Добавить("web");
ПутьСтатики = СтрСоединить(ЭлементыПути, "/");
ПутьСтатики = ПутьСтатики + "/";
Возврат ПутьСтатики;
КонецФункции

View File

@@ -1,3 +1,34 @@
#Использовать "internal"
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
КонецПроцедуры
Попытка
ОбработатьЗапрос(Контекст);
Исключение
Контекст.Ответ.КодСостояния = 500;
Контекст.Ответ.Записать(ОписаниеОшибки());
КонецПопытки
КонецПроцедуры
Процедура ОбработатьЗапрос(Контекст)
Путь = Контекст.Запрос.Путь;
Если Путь = "/web" Тогда
Статика.ВернутьСтатику(Контекст, "index.html");
ИначеЕсли Путь = "/api/menu" Тогда
Меню.ОбработатьМеню(Контекст);
Иначе
Контекст.Ответ.КодСостояния = 404;
КонецЕсли;
КонецПроцедуры

54
src/en/cli/web/index.html vendored Normal file
View 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>

View File

@@ -2138,9 +2138,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции