Deployed 00e82a1 to develop in gitlab-notification/ru with MkDocs 1.4.2 and mike 1.1.2
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Struchkov Mark 2023-02-26 15:39:20 +00:00
parent 40751c6980
commit 60cd329569
21 changed files with 177 additions and 61 deletions

View File

@ -15,7 +15,7 @@
<link rel="icon" href="/gitlab-notification/ru/develop/assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">
@ -753,7 +753,7 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
<a href="#schema-database" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -779,7 +779,7 @@
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
<a href="#_2" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -966,7 +966,7 @@
<h1 id="_1">Общая архитектура<a class="headerlink" href="#_1" title="Permanent link">⚓︎</a></h1>
<p>Поддерживается два режима работы: периодические запуски на ПК и запуск на сервере в режиме 24/7.</p>
<h2 id="_2">Схема <abbr title="База данных">БД</abbr><a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<h2 id="schema-database">Схема <abbr title="База данных">БД</abbr><a class="headerlink" href="#schema-database" title="Permanent link">⚓︎</a></h2>
<p>Приложение имеет <abbr title="База данных">БД</abbr>, которая используется для сохранения состояния отслеживаемых сущностей GitLab.</p>
<figure>
<p><img alt="schema-database.png" loading="lazy" src="../img/schema-database.png" />
@ -982,7 +982,7 @@
<p>Не везде имется возможность установить произвольные Webhook. Например, вряд ли кто-то позволит вам установить Webhook из корпоративного GitLab во внешнюю сеть. Переодическое обращение к GitLab API можно выполнять прямо с рабочей машины.</p>
<p>В будущем планирую добавить поддержку и Webhook.</p>
</div>
<h2 id="_3">Отслеживание репозиториев<a class="headerlink" href="#_3" title="Permanent link">⚓︎</a></h2>
<h2 id="_2">Отслеживание репозиториев<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<p>Ключевым (рутовым) элементом являются репозитории.</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -19,7 +19,7 @@
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">
@ -469,7 +469,7 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
<a href="#new-repository" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -482,7 +482,7 @@
</li>
<li class="md-nav__item">
<a href="#mr" class="md-nav__link">
<a href="#new-mr" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -495,7 +495,7 @@
</li>
<li class="md-nav__item">
<a href="#mr_1" class="md-nav__link">
<a href="#conflict-mr" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -508,7 +508,7 @@
</li>
<li class="md-nav__item">
<a href="#mr_2" class="md-nav__link">
<a href="#update-mr" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -521,7 +521,7 @@
</li>
<li class="md-nav__item">
<a href="#mr_3" class="md-nav__link">
<a href="#mr" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -534,7 +534,7 @@
</li>
<li class="md-nav__item">
<a href="#mr_4" class="md-nav__link">
<a href="#mr_1" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -547,7 +547,7 @@
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
<a href="#_2" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -560,11 +560,11 @@
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
<a href="#_3" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
Ответ в дискусии
Ответ в треде
</span>
</span>
@ -1031,29 +1031,95 @@
<h1 id="_1"><img alt="🔔" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f514.svg" title=":bell:" /> Уведомления<a class="headerlink" href="#_1" title="Permanent link">⚓︎</a></h1>
<p>Основное предназначение бота - это уведомления от GitLab. Вы будете получать только те уведомления, которые касаются вас непосредственно.</p>
<h2 id="_2">Новый репозиторий<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<h2 id="mr">Новый <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr" title="Permanent link">⚓︎</a></h2>
<p>Когда кто-то создает <abbr title="Merge Request">MR</abbr> и назначает вас ответственным и/или ревьювером, то вам приходит уведомление. Из этого уведомления можно узнать название, короткое описание, теги, из какой ветки в какую открыт <abbr title="Merge Request">MR</abbr>, кто его автор и кто ответственный.</p>
<h2 id="new-repository">Новый репозиторий<a class="headerlink" href="#new-repository" title="Permanent link">⚓︎</a></h2>
<p>Если во время первичной настройки вы указали, что хотите получать уведомления о новых репозиториях, то при появлении нового репозитория получите соответствующее уведомление:</p>
<figure>
<p><img alt="notify about new merge request" loading="lazy" src="../img/notify-new-project.png" width="500" /></p>
</figure>
<p>Уведомление содержит:</p>
<ul>
<li>Project name — название репозитория.</li>
<li>Project description — описание репозитория. Опционально, может быть пусто.</li>
<li>Struchkov Mark — имя создателя репозитория в GitLab</li>
</ul>
<p>Доступно три быстрых действия:</p>
<ul>
<li><img alt="🔗" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f517.svg" title=":link:" /> — ссылка на новый репозиторий в GitLab.</li>
<li><img alt="🔔" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f514.svg" title=":bell:" /> — поставить на отслеживание. Вы начнете получать уведомления о событиях в <abbr title="Merge Request">MR</abbr>, тредах и сборках.</li>
<li><img alt="🔕" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f515.svg" title=":no_bell:" /> — не получать уведомления. Используется по умолчанию, по факту просто удаляет сообщение уведомления.</li>
</ul>
<div class="admonition warning">
<p>Пока вы явно не нажмете <img alt="🔔" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f514.svg" title=":bell:" />, вы не будете получать никаких уведомлений. Более того, приложение даже не будет запрашивать <abbr title="Merge Request">MR</abbr> и прочие сущности репозитория, не будет сохранять их в <abbr title="База данных">БД</abbr>.</p>
</div>
<h2 id="new-mr">Новый <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#new-mr" title="Permanent link">⚓︎</a></h2>
<p>Это уведомление приходит, когда вас назначают ответственным и/или ревьювером.</p>
<figure>
<p><img alt="notify about new merge request" loading="lazy" src="../img/notify-new-mr.png" width="500" /></p>
</figure>
<h2 id="mr_1">Конфликт в <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr_1" title="Permanent link">⚓︎</a></h2>
<p>Уведомление содержит:</p>
<ul>
<li>Название <abbr title="Merge Request">MR</abbr>.</li>
<li>Описание <abbr title="Merge Request">MR</abbr>. Опционально.</li>
<li>Labels. Метки репозитория.</li>
<li>Имя проекта.</li>
<li>Ветки откуда куда мержим.</li>
<li>Автор <abbr title="Merge Request">MR</abbr>.</li>
<li>Ответственный/Ревьюверы <abbr title="Merge Request">MR</abbr>. Заполнение зависит от вашей позиции в этом <abbr title="Merge Request">MR</abbr>. Если вы ответственный, то вам покажут ревьюверов. Если вы ревьювер, то ответственного.</li>
</ul>
<p>Доступные быстрые действия:</p>
<ul>
<li><img alt="👀" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f440.svg" title=":eyes:" /> — прочитано. Удаляет сообщение.</li>
<li><img alt="🔗" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f517.svg" title=":link:" /> — ссылка на <abbr title="Merge Request">MR</abbr>.</li>
<li><img alt="🔕" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f515.svg" title=":no_bell:" /> — не получать уведомления по <abbr title="Merge Request">MR</abbr>.</li>
</ul>
<div class="admonition warning">
<p>Учтите, что отключение уведомлений отключает только уведомления об изменениях в <abbr title="Merge Request">MR</abbr>. Например, обновление статуса <abbr title="Merge Request">MR</abbr>. Но уведомления по пайплайнам проекта, по тредам <abbr title="Merge Request">MR</abbr> продолжат приходить.</p>
</div>
<h2 id="conflict-mr">Конфликт в <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#conflict-mr" title="Permanent link">⚓︎</a></h2>
<p>Если в вашем <abbr title="Merge Request">MR</abbr> возник конфликт, то вы будете своевременно оповещены. В этом уведомлении указывается название <abbr title="Merge Request">MR</abbr>, проект и ветка.</p>
<figure>
<p><img alt="notify about conflict in merge request" loading="lazy" src="../img/notify-conflict-mr.png" width="500" /></p>
</figure>
<h2 id="mr_2">Обновление <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr_2" title="Permanent link">⚓︎</a></h2>
<p>Когда кто-то делает коммиты в <abbr title="Merge Request">MR</abbr>, в котором вы ответственный или ревьювер, вам сразу же приходит уведомление. Вы также сразу можете увидеть сколько задач еще не решено, и сколько созданных вами задач не было решено.</p>
<p>Доступные быстрые действия:</p>
<ul>
<li><img alt="👀" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f440.svg" title=":eyes:" /> — прочитано. Удаляет сообщение.</li>
<li><img alt="🔗" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f517.svg" title=":link:" /> — ссылка на <abbr title="Merge Request">MR</abbr>.</li>
<li><img alt="🔕" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f515.svg" title=":no_bell:" /> — не получать уведомления по этому <abbr title="Merge Request">MR</abbr>.</li>
</ul>
<h2 id="update-mr">Обновление <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#update-mr" title="Permanent link">⚓︎</a></h2>
<p>Если в <abbr title="Merge Request">MR</abbr>, в котором вы являетесь ответственным/ревьювером, добавляются коммиты, вы получаете уведомление.</p>
<figure>
<p><img alt="notify about update in merge request" loading="lazy" src="../img/notify-update-mr.png" width="500" /></p>
</figure>
<h2 id="mr_3">Изменение статуса <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr_3" title="Permanent link">⚓︎</a></h2>
<p>Уведомление содержит:</p>
<ul>
<li>Название <abbr title="Merge Request">MR</abbr>.</li>
<li>Отношение количества закрытых тредов к общему количеству созданных тредов.</li>
<li>Отношение количества закрытых вами созданных тредов к общему количеству созданных вами тредов.</li>
<li>Название репозитория.</li>
<li>Имя создателя <abbr title="Merge Request">MR</abbr>.</li>
</ul>
<p>Доступные быстрые действия:</p>
<ul>
<li><img alt="👀" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f440.svg" title=":eyes:" /> — прочитано. Удаляет сообщение.</li>
<li><img alt="🔗" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f517.svg" title=":link:" /> — ссылка на <abbr title="Merge Request">MR</abbr>.</li>
<li><img alt="🔕" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f515.svg" title=":no_bell:" /> — не получать уведомления по этому <abbr title="Merge Request">MR</abbr>.</li>
</ul>
<h2 id="mr">Изменение статуса <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr" title="Permanent link">⚓︎</a></h2>
<p>Когда статус вашего <abbr title="Merge Request">MR</abbr> меняется, вы получаете уведомление.</p>
<h2 id="mr_4">Новый тред в <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr_4" title="Permanent link">⚓︎</a></h2>
<p>В GitLab можно создавать не просто комментарии, а обсуждения (Discussions). Если кто-то создаст такое обсуждение в вашем <abbr title="Merge Request">MR</abbr>, то вы сразу об этом узнаете.</p>
<h2 id="_3">Упоминание в треде<a class="headerlink" href="#_3" title="Permanent link">⚓︎</a></h2>
<figure>
<p><img alt="notify about update status in merge request" loading="lazy" src="../img/notify-update-status-mr.png" width="500" /></p>
</figure>
<p>Доступные быстрые действия:</p>
<ul>
<li><img alt="👀" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f440.svg" title=":eyes:" /> — прочитано. Удаляет сообщение.</li>
<li><img alt="🔗" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f517.svg" title=":link:" /> — ссылка на <abbr title="Merge Request">MR</abbr>.</li>
</ul>
<h2 id="mr_1">Новый тред в <abbr title="Merge Request">MR</abbr><a class="headerlink" href="#mr_1" title="Permanent link">⚓︎</a></h2>
<p>В GitLab можно создавать не просто комментарии, а треды. Если кто-то создаст такое обсуждение в вашем <abbr title="Merge Request">MR</abbr>, то вы сразу об этом узнаете.</p>
<h2 id="_2">Упоминание в треде<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<p>Допустим, кто-то упомянул вас в <abbr title="Merge Request">MR</abbr>, нужен ваш совет. Автор этого <abbr title="Merge Request">MR</abbr> не вы, ответственным назначали тоже не вас. Даже в этом случае вам придет уведомление, так вы не пропустите сообщения с вашим упоминанием.</p>
<h2 id="_4">Ответ в дискусии<a class="headerlink" href="#_4" title="Permanent link">⚓︎</a></h2>
<h2 id="_3">Ответ в треде<a class="headerlink" href="#_3" title="Permanent link">⚓︎</a></h2>
<p>Важно оставаться в теме обсуждения, поэтому при появлении новых ответов в дискуссия, в которых вы участвовали, вы получите уведомление.</p>
<p>Оно будет содержать начальное сообщение обсуждения, ваше последнее сообщение в нем, а также два последних комментария. Таким образом вы будете понимать о чем идет речь.</p>

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">
@ -895,6 +895,7 @@
*[MR]: Merge Request
*[БД]: База данных
*[Idea]: IDE IntelliJ IDEA

View File

@ -17,7 +17,7 @@
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -19,7 +19,7 @@
<link rel="icon" href="assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">

View File

@ -21,7 +21,7 @@
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">
@ -85,7 +85,7 @@
<meta property="og:description" content="None" >
<meta property="og:image" content="https://docs.struchkov.dev/gitlab-notification/ru/develop/assets/images/social/privacy.png" >
<meta property="og:image" content="https://docs.struchkov.dev/gitlab-notification/ru/develop/assets/images/social/privacy/index.png" >
<meta property="og:image:type" content="image/png" >
@ -101,7 +101,7 @@
<meta name="twitter:description" content="None" >
<meta name="twitter:image" content="https://docs.struchkov.dev/gitlab-notification/ru/develop/assets/images/social/privacy.png" >
<meta name="twitter:image" content="https://docs.struchkov.dev/gitlab-notification/ru/develop/assets/images/social/privacy/index.png" >
@ -389,8 +389,47 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#gitlab" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
Защита токена GitLab
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
Уровни конфиденциальности
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
Сохранение в <abbr title="База данных">БД</abbr>
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
<span class="md-ellipsis">
<span class="md-typeset">
@ -928,7 +967,7 @@
<a href="https://github.com/uPagge/gitlab-notification/edit/develop/documentation/ru/docs/privacy.md" title="Редактировать страницу" class="md-content__button md-icon">
<a href="https://github.com/uPagge/gitlab-notification/edit/develop/documentation/ru/docs/privacy/index.md" title="Редактировать страницу" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"/></svg>
</a>
@ -937,11 +976,21 @@
<h1 id="_1"><img alt="🥷" class="twemoji" src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f977.svg" title=":ninja:" /> Конфиденциальность<a class="headerlink" href="#_1" title="Permanent link">⚓︎</a></h1>
<p>Мое решение сфокусировано на приватности и прозрачности. Код и используемые зависимости полностью открыты и доступны для изучения и самостоятельной сборки.</p>
<p>Для работы бота токен доступа устанавливается в переменные среды и никуда не передается, кроме запросов в GitLab.</p>
<p>Некоторые уведомления могут содержать чуствительную информацию. Например, уведомления о новых сообщениях в тредах. Возможно вы не захотите раскрывать столько информации о ваших репозиториях Телеграму, ведь через него идет получение уведомлений. Специально для таких случаев предусмотрены уровни конфиденциальности разных типов уведомлений.</p>
<p>Возьмем для примера уведомление о новом сообщении в треде. При минимальном уровне конфиденциальности вы получите уведомление с текстом коментария и сможете сразу ответить на него в телеграм, а при максимальном уровне конфиденциальности будет сообщаться только о факте нового комментария, без содержания. Все это настраивается при первом запуске.</p>
<h2 id="_2">Несанкционированный доступ<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<p>Я разработчик, и это приложение должно помогать мне работать, оптимизируя мое время взаимодействия с GitLab. В какой-то момент я решил подлиться своими наработками со всеми желающими. Часто в GitLab содержится множество конфиденциальной информации, которую не хотелось бы раскрывать. Эта страница пытается ответить на все вопросы, которые могут вас смущать.</p>
<div class="admonition tip">
<p class="admonition-title">Доверие</p>
<p>Вы не должны верить мне на слово. Вы можете <a href="https://github.com/uPagge/gitlab-notification">самостоятельно изучить код, он открыт и не сложен.</a> После проверки можно самостоятельно собрать jar и упаковать его в Docker. Либо запускать код прямо из <abbr title="IDE IntelliJ IDEA">Idea</abbr>.</p>
</div>
<h2 id="gitlab">Защита токена GitLab<a class="headerlink" href="#gitlab" title="Permanent link">⚓︎</a></h2>
<p>Для работы ассистента необходим персональный токен GitLab. Он указывается в переменные среды и нигде дополнительно не дублируется. Таким образом токен не попадает в Telegram и хранится только у вас на компьютере и в контейнере приложения.</p>
<p>Токен используется только при обращении к указанному GitLab, и только для выполнения описанных в документации возможностей. Никакой скрытой работы не выполняется, по возможности обо всех взаимодействиях с GitLab дополнительно сообщается во время настройки.</p>
<h2 id="_2">Уровни конфиденциальности<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
<p>Некоторые уведомления могут содержать множество чувствительной информации. Например, уведомления о новых сообщениях в тредах. Возможно вы не захотите раскрывать столько информации о вашей разработке телеграму, ведь через него идет получение уведомлений. Специально для таких случаев предусмотрены уровни конфиденциальности разных типов уведомлений.</p>
<p>Возьмем для примера уведомление о новом сообщении в треде. При минимальном уровне конфиденциальности вы получите уведомление с текстом комментария и сможете сразу ответить на него в телеграм, а при максимальном уровне конфиденциальности будет сообщаться только о факте нового комментария, без содержания. Все это настраивается при первом запуске.</p>
<h2 id="_3">Сохранение в <abbr title="База данных">БД</abbr><a class="headerlink" href="#_3" title="Permanent link">⚓︎</a></h2>
<p>Для работы ассистента ему нужно сохранять предыдущее состояние GitLab сущностей. Для этого используется <abbr title="База данных">БД</abbr>. Приложение старается не хранить в <abbr title="База данных">БД</abbr> больше данных, чем необходимо. Как только необходимость в данных теряется, например <abbr title="Merge Request">MR</abbr> мержится, данные из <abbr title="База данных">БД</abbr> удаляются.</p>
<p>Прочитать подробнее можно в разделе: <a href="../architecture/concept/#schema-database">Работа с базой данных</a></p>
<h2 id="_4">Несанкционированный доступ<a class="headerlink" href="#_4" title="Permanent link">⚓︎</a></h2>
<p><mark>Все боты в Telegram являются публичными.</mark> Это значит, что ваш бот может быть найден через поиск в Telegram. Поэтому <mark>не рекомендуется давать название боту, которое может раскрыть его предназначение.</mark></p>
<p>Даже если кто-то случайно напишет вашему боту ничего не случится. <mark>В боте встроена проверка прав доступа.</mark> Вот как она работает:</p>
<ol>
@ -950,10 +999,12 @@
<li>Если идентификатор отправителя не совпадает с указанным при запуске, бот не обрабатывает команду</li>
<li>Вы получаете уведомление о том, что такой-то пользователь пытался написать в ваш бот. Вам доступен логин этого пользователя в Telegram, а также текст его сообщения. Это поможет понять является ли попытка доступа злонамеренной и принять меры.</li>
</ol>
<blockquote>
<p>Уведомления от GitLab всегда отправляются только указанному в конфигурации пользователю.</p>
</blockquote>
<p>Демонстрация работы системы защиты:</p>
<figure>
<p><img alt="unauth-access.png" loading="lazy" src="unauth-access.png" width="500" />
</p>
<figcaption>уведомление о несанкционированном доступе</figcaption>
</figure>
<p>Для злоумышленника все выглядит так, как будто бот не работает. Никаких ответных сообщений ему не отправляется.</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

File diff suppressed because one or more lines are too long

View File

@ -5,11 +5,6 @@
<lastmod>2023-02-26</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://docs.struchkov.dev/gitlab-notification/ru/develop/privacy/</loc>
<lastmod>2023-02-26</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://docs.struchkov.dev/gitlab-notification/ru/develop/architecture/concept/</loc>
<lastmod>2023-02-26</lastmod>
@ -55,6 +50,11 @@
<lastmod>2023-02-26</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://docs.struchkov.dev/gitlab-notification/ru/develop/privacy/</loc>
<lastmod>2023-02-26</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://docs.struchkov.dev/gitlab-notification/ru/develop/support-development/</loc>
<lastmod>2023-02-26</lastmod>

View File

@ -1,13 +1,11 @@
.md-typeset .admonition,
.md-typeset details {
border-width: 0;
border-left-width: 4px;
}
.md-typeset .admonition, .md-typeset details {
font-size: 0.75rem;
}
.md-typeset h1, .md-typeset h2 {
font-weight: 500;
}
@keyframes heart {
0%, 40%, 80%, 100% {
transform: scale(1);

View File

@ -23,7 +23,7 @@
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.14+insiders-4.32.1">
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.15+insiders-4.32.1">