1
0
mirror of https://github.com/Untru/gitmanager.git synced 2025-08-09 21:37:16 +02:00

Merge pull request #56 from Untru/develop

Develop
This commit is contained in:
Pavel
2025-08-01 18:28:18 +03:00
committed by GitHub
10 changed files with 302 additions and 37 deletions

174
README.md
View File

@@ -1,24 +1,134 @@
## GitManager
Что это и зачем?
Изначально была цель дать пользователю простой нитерфейс для работы с 1с по методологии Git Flow. Решение представляет из себя 3 коомпонента:
* GitManager
* GitAgent
* Cli приложение (https://github.com/Untru/pivo-cli)
GitManager и GitAgent Это одна и та жа конфигурация. Идея сделать GitAgent родилась изза того что по сети сборка и разборка исходников работает очень долго, по этому основная база отправляет команды в GitAgent И он уже запускает скрипты.
Общая схема работы:
```mermaid
sequenceDiagram
participant GitManager as GitManager (Сервер 1)
participant GitAgent as GitAgent (Сервер 2)
participant PIVO-CLI as CLI (Сервер 2)
GitManager ->> GitAgent: Отправка команды (pivo-cli)
activate GitAgent
GitAgent ->> CLI: Запуск команды
activate CLI
CLI -->> GitAgent: Результат (stdout/stderr)
deactivate CLI
GitAgent -->> GitManager: Ответ (логи/статус)
deactivate GitAgent
```
## Старт работы
Для удобства работы мы сделали скрипт по разворачиванию базы (РазворачиваниеБазы.bat)
Необходимо заполнить переменные, система сама скачает файл с репозитория и развернет базу на сервере.
Основные тесты были с серверной базой, по этому в файловой гарантирвтаь работоспособность нам сложно.
<details>
<summary><strong> Скрипт </strong></summary>
```bat
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
:: =============================================
:: Установка GitManager
:: =============================================
:: Параметры
set "GITHUB_URL=https://github.com/Untru/gitmanager/releases/latest/download/GitManager.cf"
set "TEMP_FILE=%TEMP%\GitManager.cf"
set "DB_SERVER=localhost" :: Измените на свой сервер СУБД при необходимости
set "DB_NAME=Name" :: Имя новой базы данных
set "DB_USER=postgres" :: Пользователь СУБД
set "DB_PWD=postgres" :: Пароль пользователя СУБД
set "1C_USER=Администратор" :: Пользователь 1С
set "1C_PWD="" :: Пароль 1С (оставьте пустым, если без пароля)
set "V8VER=8.3.27.1508" :: Версия 1С
:: Скачиваем файл
echo Скачивание GitManager.cf...
curl -L -o "%TEMP_FILE%" "%GITHUB_URL%"
if %errorlevel% neq 0 (
echo Ошибка при скачивании файла.
pause
exit /b 1
)
echo OK. 1cv8 найден.
pause
:: Создаём и загружаем базу
echo Создание базы данных...
"%ProgramFiles%\1cv8\%V8VER%\bin\1cv8.exe" createinfobase Srvr=%DB_SERVER%;Ref=%DB_NAME%;SQLSrvr=%DB_SERVER%;DBMS=PostgreSQL;SQLDB=%DB_NAME%;SQLUID=%DB_USER%;SQLPwd=%DB_PWD%;CrSQLDB=y;DB=%DB_NAME% /AddInList %DB_NAME% /UseTemplate "%TEMP_FILE%" /Out"CreateDB-%1.log"
@TYPE "CreateDB-%1.log"
if %errorlevel% neq 0 (
echo Ошибка при создании базы данных.
pause
exit /b 1
)
:: Удаляем временный файл
del "%TEMP_FILE%"
echo База данных "%DB_NAME%" успешно создана и добавлена в список баз.
pause
```
Запусить и наслаждаться
</details>
Для удобста старта работ мы разработали "Начальный помошник", Управление разработкой - > Запуск.
Советую пройтись по всем шагам по очередит и заодно изучить что создается,
<img src="images/image-7.png" width="600" alt="Начальный помощник">
<img src="images/image-8.png" width="600" alt="Настройки помощника">
Предусмотренно заполнение пользователей/создание проекта добавление баз и установка oscript
<details>
<summary><strong> Если хотим все заполнять сами </strong></summary>
Для начала работы необходимо создать пользователя с правами "Администратор", далее необходимо заполнить
Настройки пользователя:
![alt text](images/image-1.png)
<img src="images/image-1.png" width="600" alt="Настройки пользователя">
Обязательно необходимо заполнить Проект и токен от внешнего репозитория и так же почту пользователя
![Настройки пользователя](images/image-2.png)
<img src="images/image-2.png" width="600" alt="Настройки пользователя">
Проект
Пример заполнения основных полей
![Проект](images/image-3.png)
<img src="images/image-3.png" width="600" alt="Проект">
После заполнения базы необходимо создать репозиторий по кнопке
![alt text](images/image-4.png)
<img src="images/image-4.png" width="600" alt="Создание репозитория">
Для работы с гитхаб необходимо установить
[GitHub CLI](https://cli.github.com/)
У службы под которой запужена 1с должны быть права на шару папки
![alt text](images/image-5.png)
<img src="images/image-5.png" width="600" alt="Права доступа">
</details>
Необходимо запустить RAC как службу
Сделать это можно с помощью скрипта
<details>
<summary><strong> Скрипт запуска скрапта добавления службы RAS </strong></summary>
``` bat
@echo off
@@ -36,8 +146,58 @@ sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%
```
Для вывода логов
</details>
Важно, с системе получние настроек для задач
Для вывода логов от 1command (Блиблиотека запуска команд)
Мы можем или зададать переменную окружения
``` bat
set LOGOS_CONFIG=logger.oscript.lib.commands=DEBUG;
```
<img src="images/image-9.png" width="600" alt="Запуск команд">
## Процесс работы
Каждой базе должен соответствовать своя папочка подключенная к репозиторию, это проверить можно по наличию кнопки создания репозитория
![alt text](images/image-11.png)
Новая задача - >
![alt text](images/image-10.png)
Тут есть 3 варианта:
* Новая задача - создается новая ветка из ветки Develop
* HotFix к задаче - создается новая задача к задаче по ветке main/master, создает новую задачу к текущей
* HotFix новая задача - требует наличие задачи в таск трекере
# Таск трекеры
Сейчас поддерживается 2 таск трекера
* 1С (только простая загрузка задач)
П
На входе мы ожидаем JSON
Работа со структурой
{
"Исполнитель": "",
"Трудозатраты_часов": 0,
"Статус": "",
"ДатаПринятияВРаботу": "",
"Описание_Задачи": "",
"Описание_Решения": "",
"Приоритет": ,
"Очередь":
}
* Битрикс
Использование чужих библиотек
- ОПИ
ОГРАНИЧЕНИЯ !!! Некоторый функционал не работает в WEB Клиенте

BIN
images/image-10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
images/image-11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
images/image-7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
images/image-8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
images/image-9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -20,7 +20,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Мир инструментов</vendor>
<version>1.0.0.3</version>
<version>1.0.1.0</version>
<usedMobileApplicationFunctionalities>
<functionality>
<use>true</use>

View File

@@ -302,6 +302,61 @@
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>VSCode</name>
<id>188</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>VSCodeРасширеннаяПодсказка</name>
<id>189</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.VSCode</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Vcs</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ОбновитьНастройки</name>
<id>194</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьНастройкиРасширеннаяПодсказка</name>
<id>195</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ОбновитьНастройки</commandName>
<representation>PictureAndText</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СправочникБазыАктуализироватьДопОбработки</name>
<id>192</id>
@@ -334,35 +389,6 @@
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>VSCode</name>
<id>188</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>VSCodeРасширеннаяПодсказка</name>
<id>189</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.VSCode</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Vcs</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -3143,6 +3169,26 @@
</action>
<currentRowUse>Auto</currentRowUse>
</formCommands>
<formCommands>
<name>ОбновитьНастройки</name>
<title>
<key>ru</key>
<value>Обновить настройки</value>
</title>
<id>18</id>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ОжидаемаяДлительнаяОперация16</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОбновитьНастройки</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>

View File

@@ -305,6 +305,11 @@
УстановитьЗаголовокПоЗадачеНаСервере(База, ТекущаяЗадача);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьНастройки(Команда)
ОбновитьНастройкиНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗадачи
@@ -1170,4 +1175,11 @@
КонецПроцедуры
&НаСервере
Процедура ОбновитьНастройкиНаСервере()
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
#КонецОбласти

View File

@@ -0,0 +1,47 @@
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
:: =============================================
:: Установка GitManager
:: =============================================
:: Параметры
set "GITHUB_URL=https://github.com/Untru/gitmanager/releases/latest/download/GitManager.cf"
set "TEMP_FILE=%TEMP%\GitManager.cf"
set "DB_SERVER=localhost" :: Измените на свой сервер СУБД при необходимости
set "DB_NAME=GM6" :: Имя новой базы данных
set "DB_USER=postgres" :: Пользователь СУБД
set "DB_PWD=postgres" :: Пароль пользователя СУБД
set "1C_USER=Администратор" :: Пользователь 1С
set "1C_PWD="" :: Пароль 1С (оставьте пустым, если без пароля)
set "V8VER=8.3.27.1508" :: Версия 1С
:: Скачиваем файл
echo Скачивание GitManager.cf...
curl -L -o "%TEMP_FILE%" "%GITHUB_URL%"
if %errorlevel% neq 0 (
echo Ошибка при скачивании файла.
pause
exit /b 1
)
echo OK. 1cv8 найден.
pause
:: Создаём и загружаем базу
echo Создание базы данных...
"%ProgramFiles%\1cv8\%V8VER%\bin\1cv8.exe" createinfobase Srvr=%DB_SERVER%;Ref=%DB_NAME%;SQLSrvr=%DB_SERVER%;DBMS=PostgreSQL;SQLDB=%DB_NAME%;SQLUID=%DB_USER%;SQLPwd=%DB_PWD%;CrSQLDB=y;DB=%DB_NAME% /AddInList %DB_NAME% /UseTemplate "%TEMP_FILE%" /Out"CreateDB-%1.log"
@TYPE "CreateDB-%1.log"
if %errorlevel% neq 0 (
echo Ошибка при создании базы данных.
pause
exit /b 1
)
:: Удаляем временный файл
del "%TEMP_FILE%"
echo База данных "%DB_NAME%" успешно создана и добавлена в список баз.
pause