Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий

Сразу дисклеймер: это рассказ про инструмент, который мы написали для себя и используем каждый день. Ссылку дам в конце, продавать не буду — расскажу про проблему и как её решали, потому что упираемся в неё, возможно, не только мы.

За последний год мы переписали почти всю проектную документацию в markdown и положили в тот же git, где лежит код. Причина простая: после перехода на Cursor и Claude Code так было удобнее работать. Модели нормально обрабатывают markdown и не лопатят десятистраничный google-док, диффы видно в PR, доки лежат рядом с кодом, который описывают. Всегда можно обратиться к инфе по проекту, внести обновления — короче пользоваться документом, а не хранить его для красоты.

И тут вылезла проблема, о которой лично мы заранее не подумали: документацию читает не только тот, кто её пишет. Её читают клиенты, менеджеры, дизайнеры, эйчары. А они в репозиторий не полезут никогда.

Дать клиенту доступ в GitHub/GitLab — так себе затея сразу по нескольким причинам: там лежит то, что ему видеть не надо, это лишний разговор про безопасность, да и сам интерфейс гитхаба человека не из айтишки отпугивает. Плюс требуется регистрация. В итоге мы делали то же, что, по-моему, делают все: копировали markdown в google docs, чтобы клиент мог прочитать и покомментировать, а потом при каждом изменении заново выгружали и сводили комментарии руками. Год так жили.

Что смотрели, прежде чем пилить своё:

GitBook и Mintlify хотят, чтобы ты писал в их редакторе. Ради шеринга пришлось бы бросить тот самый workflow, ради которого мы в git и переехали. Плюс ценник.

Notion — это снова копипаст markdown в очередной инструмент. А когда захотели прикрутить ИИ-агента к докам, выяснилось, что Notion MCP для гостевых аккаунтов просто не работает (висит открытый issue) — клиенту агента дать мы не можем.

GitHub Wiki / Docusaurus оставляют тебя в markdown, но клиенту для комментариев всё равно нужен гитхаб-аккаунт. 

Каждый вариант требовал либо еще раз сменить процесс, либо пустить читателя в дев-инструменты. Ничего из этого делать не хотелось, поэтому сделали прослойку поверх репозитория.

Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий - 1

Как устроено:

Подключаем репозиторий через GitHub/GitLab app, выбираем папки с markdown. Портал — зеркало репы: запушил коммит, страница перерендерилась. Никакого отдельного билда и деплоя для того, кто пишет код.

Рендер — обычный markdown + GFM, подсветка кода, mermaid, оглавление, перекрёстные ссылки. 

.docignore — по-моему, ключевое. Файлы под .docignore в индекс не попадают совсем. Для портала их просто нет: внутренние заметки, наброски, креды через вьювер не достать, потому что они туда не загружаются.

Комментарии — читатель комментирует конкретный абзац, треды по разделам, владельцу всё падает в один инбокс, можно отметить resolved. Без гитхаб-аккаунта со стороны комментатора.

Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий - 2

И самое интересное — MCP. Поверх тех же доков поднят MCP-сервер, чтобы ИИ-агент (Claude Code, Cursor, Claude Desktop) отвечал по документации. Тут важно было не облажаться с правами: авторизация OAuth 2.1 + PKCE, каждое соединение привязано к реальному аккаунту, и запрос видит ровно то, что этот аккаунт видит в браузере, — не больше. .docignore в индекс MCP тоже не попадает. Сервер read-only: агент читает, перезаписать доки не может. Mintlify MCP работает только по публичным докам, Notion блокирует гостей — поэтому для приватной клиентской документации оба мимо.

Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий - 3

Чего тут нет, и врать не буду:

Это не редактор. Принципиально read-only вьювер + комментарии + MCP. Хочешь править — правишь там, где писал.

Self-hosted пока нет, в планах. 

Если кто-то решал ту же боль иначе — расскажите в комментах, реально интересно, может, мы где-то переусложнили.

Ссылка: miradorly.com. Бесплатно 30 дней, карты для регистрации не надо. Если у вас такой проблемы нет и не было — не минусуйте плиз и просто проходите мимо. Ну или делитесь мыслями по существу. 

Автор: dev_family

Источник

Оставить комментарий