Compare commits

..

10 Commits

Author SHA1 Message Date
0d5413039a
Удалил публикацию сайта
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-23 18:17:16 +03:00
54cfd2e6ea
Новый cicd для документации 2023-02-23 18:10:28 +03:00
da64386eba
update .gitignore 2023-02-23 16:36:59 +03:00
395e88d6b1
meta disable 2023-02-23 16:29:41 +03:00
042f802ffc
Добавил emoji в документацию
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 15:04:05 +03:00
560c4b0fc8
Поправил документацию
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 14:24:24 +03:00
3647b82cc4
Поправил документацию 2023-02-23 14:23:40 +03:00
54a5b14991
Добавил оптимизацию и кэширование документации
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 13:19:15 +03:00
d3672b480d
Переход на платную версию документации
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 13:04:21 +03:00
07d1b3372b
Документация
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-22 16:54:31 +03:00
11 changed files with 168 additions and 59 deletions

View File

@ -107,37 +107,30 @@ name: create-docs-site
trigger:
branch:
- docs
- master
clone:
depth: 1
steps:
- name: build site
image: upagge/mkdocs-material
environment:
SSH_DEPLOY_KEY:
from_secret: SSH_DEPLOY_KEY
SSH_DEPLOY_HOST:
from_secret: SSH_DEPLOY_HOST
SSH_DEPLOY_PORT:
from_secret: SSH_DEPLOY_PORT
SSH_DEPLOY_PATH:
from_secret: SSH_DEPLOY_PATH
SSH_DEPLOY_USER:
from_secret: SSH_DEPLOY_USER
image: git.struchkov.dev/upagge/mkdocs-material-insiders:latest
volumes:
- name: mkdocs_cache
path: ${DRONE_WORKSPACE}/documentation/.cache
commands:
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- echo "$SSH_DEPLOY_KEY" >> ~/.ssh/id_rsa
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -p $SSH_DEPLOY_PORT $SSH_DEPLOY_HOST >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- cd documentation
- mkdocs build
- mv site gitlab-notification
- scp -r -P $SSH_DEPLOY_PORT ./gitlab-notification $SSH_DEPLOY_USER@$SSH_DEPLOY_HOST:$SSH_DEPLOY_PATH
- mike deploy --prefix gitlab-notification --branch docs-deploy --push --update-aliases develop
image_pull_secrets:
- DOCKER_AUTH
volumes:
- name: mkdocs_cache
host:
path: /drone/volume/mkdocs_cache/gitlab_notification
---
kind: signature
hmac: 8dbac280687d64b7b49961e75c59ea29ee1dfd395b8284404a1371b30f11dbb3
hmac: fcd23a173d0a823ff39f9efe454d936476d49f03840034af7dd2c671571004d4
...

2
.gitignore vendored
View File

@ -32,3 +32,5 @@ build/
/.mvn/wrapper/
/mvnw
/mvnw.cmd
/documentation/site/
/documentation/.cache/

7
ci-notify.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
TIME="10"
URL="https://api.telegram.org/bot$DEPLOY_TELEGRAM_BOT_TOKEN/sendMessage"
TEXT="Deploy status: $1%0A-- -- -- -- --%0ABranch:+$CI_COMMIT_REF_SLUG%0AProject:+$CI_PROJECT_TITLE"
curl -s --max-time $TIME --proxy $PROXY_SETTING -d "chat_id=$TELEGRAM_CHAT_ID&disable_web_page_preview=1&text=$TEXT" $URL >/dev/null

View File

@ -1,6 +0,0 @@
---
hide:
- comments
title: ChangeLog
---

View File

@ -0,0 +1,12 @@
---
title: ChangeLog
hide:
- comments
---
# ChangeLog
## v.2.0.0
## v.1.0.0

View File

@ -0,0 +1,54 @@
Есть несколько способов запустить бота-помощника. Бот был спроектирован таким образом, чтобы работать локально на вашем ПК, но вы можете запустить его на сервере в режиме 24/4.
## Создание бота в Telegram
Перед запуском необходимо создать бота в Telegram. Для этого перейдите в официального бота [@GodFather](https://t.me/BotFather) и выполните команду `/newbot`.
Первым делом вам предложат ввести имя для бота.
## Конфигурация
Несмотря на то, какой вариант запуска вы виберете, необходимо будет указать следующие переменные среды:
* `TELEGRAM_BOT_TOKEN` — токен, который вы получили при создании бота.
* `TELEGRAM_BOT_USERNAME` — название, которое вы дали боту. Оканчивается на bot.
* `GITLAB_PERSONAL_TOKEN` — токен, который вы получили в GitLab
* `TELEGRAM_PERSON_ID` — ваш id в telegram, можно узнать тут.
* `GITLAB_URL` — url на gitlab. Локальный или облачный.
* `DATASOURCE_URL` — ссылка на базу данных Postgres, в следующем формате: jdbc:postgresql://localhost:5432/gitlab_bot
* `DATASOURCE_USERNAME` — пользователь БД
* `DATASOURCE_PASSWORD` — пароль от БД
## Запуск Docker Compose
## Запуск Docker
Команда для запуска выглядит следующим образом:
``` docker
docker run --name gitlab-notify \
--env TELEGRAM_BOT_TOKEN=value \
--env TELEGRAM_BOT_USERNAME=value \
--env GITLAB_PERSONAL_TOKEN=value \
--env TELEGRAM_PERSON_ID=value \
--env GITLAB_URL=value \
--env DATASOURCE_URL=jdbc:postgresql://localhost:5432/gitlab_bot \
--env DATASOURCE_USERNAME=postgres \
--env DATASOURCE_PASSWORD=value \
--network="host" upagge/gitlab-telegram-notify:latest
```
## Запуск в IDEA
## Запуск JAR релиза
Скачать актуальный jar-файл всегда можно на странице релизов GitHub.
``` shell
java -DTELEGRAM_BOT_USERNAME=value \
-DTELEGRAM_BOT_TOKEN=value \
-DTELEGRAM_PERSON_ID=value \
-DDATASOURCE_URL=value \
-DDATASOURCE_PASSWORD=value \
-DDATASOURCE_USERNAME=value \
-DGITLAB_PERSONAL_TOKEN=value \
-DGITLAB_URL=value \
-jar gitlab-notification.jar
```

View File

@ -0,0 +1,19 @@
## Уведомления
### Новый MR
### Конфликт в MR
### Обновление MR
### Изменение статуса MR
### Новый тред в MR
### Упоминание в треде
### Ответ в дискусии
## Взаимодействие с GitLab
### Ответ в треде

View File

@ -7,4 +7,4 @@ Let's start with this simple program:
### Test 2
## Test 3
## Test 4

View File

@ -6,4 +6,15 @@ hide:
---
# GitLab Notification Персональный бот в Telegram для GitLab
# GitLab Notification Персональный Telegram для GitLab
Персональный помощник для взаимодействия с GitLab. Получайте уведомления о событиях в GitLab: новые MR, где вы ревьювер, конфликты в ваших MR, уведомления о новых сообщениях в тредах, где вы являетесь участником, и многое другое.
## :ninja: Privacy
Мое решение сфокусировано на приватности и прозрачности. Код и используемые зависимости полностью открыты и доступны для изучения и самостоятельной сборки.
Для работы бота токен доступа устанавливается в переменные среды и никуда не передается, кроме запросов в GitLab.
Некоторые уведомления могут содержать чуствительную информацию. Например, уведомления о новых сообщениях в тредах. Возможно вы не захотите раскрывать столько информации о ваших репозиториях Телеграму, ведь через него идет получение уведомлений. Специально для таких случаев предусмотрены уровни конфиденциальности разных типов уведомлений.
Возьмем для примера уведомление о новом сообщении в треде. При минимальном уровне конфиденциальности вы получите уведомление с текстом коментария и сможете сразу ответить на него в телеграм, а при максимальном уровне конфиденциальности будет сообщаться только о факте нового комментария, без содержания. Все это настраивается при первом запуске.

View File

@ -1,9 +1,8 @@
site_name: GitLab Notification Bot
site_name: GitLab Notification
site_url: https://docs.struchkov.dev/gitlab-notification/
repo_url: https://github.com/uPagge/gitlab-notification
repo_name: uPagge/gitlab-notification
#edit_uri: edit/master/documentation/docs
nav:
@ -35,14 +34,11 @@ theme:
toggle:
icon: material/brightness-4
name: Switch to light mode
features:
- navigation.instant
- navigation.indexes
- navigation.sections
- navigation.tracking
# - navigation.tabs
- navigation.tabs.sticky
- navigation.footer
- search
- search.suggest
@ -50,39 +46,44 @@ theme:
- content.action.edit
- content.code.copy
- toc.follow
- toc.integrate
plugins:
- social
- meta
# - meta
- tags
- search:
lang: ru
- git-revision-date-localized:
enable_creation_date: true
# - optimize:
# concurrency: 1
# optimize_jpg_quality: 90
markdown_extensions:
- toc:
permalink: true
toc_depth: 3
title: Содержание
- pymdownx.details
- pymdownx.superfences
- pymdownx.inlinehilite
- pymdownx.snippets
- attr_list
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.snippets
- pymdownx.inlinehilite
- pymdownx.details
- pymdownx.smartsymbols
- pymdownx.betterem
line_spans: __span
pygments_lang_class: true
- pymdownx.tabbed:
alternate_style: true
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
- admonition
- md_in_html
- toc:
permalink: true
toc_depth: 3
title: Содержание
extra:
generator: false
analytics:
provider: custom
property: foobar
version:
provider: mike
# alternate:

View File

@ -0,0 +1,16 @@
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(92567215, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/92567215" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->