
Chrome-расширение для GitLab: от rebase до cherry-pick
termyanen 30 минут назад Chrome-расширение для GitLab: от rebase до cherry-pick Средний 4 мин 911 Расширения для браузеров Google Chrome DevOps * Open source * Кейс Из песочницы Работая с GitLab каждый день, повторяешь...
GPT-5.6 31 Temmuz 2026'da yayınlanacak mı?
Значимый прорыв формирует отрасль ИИ: termyanen 30 минут назад Chrome-расширение для GitLab: от rebase до cherry-pick Средний 4 мин 911 Расширения для браузеров Google Chrome DevOps * Open source * Кейс Из песочницы Работая с GitLab каждый день, повторяешь кучу одинаковых действий и большинство хотелось бы делать быстрее чем UI позволяет. Каждое действие — это 3-5 кликов и перезагрузка страницы. В какой-то момент надоело и я запилил Chrome-расширение.
Расскажу как оно устроено внутри и какие задачи пришлось решать. Авторизация без токеновПервый вопрос который встал — как ходить в GitLab API. Стандартный путь: попросить пользователя создать Personal Access Token, сохранить его в storage расширения.
Технические детали
Но это неудобно (лишний шаг при установке) и небезопасно (токен с широким scope лежит в сторе, забывается, не отзывается). Решение оказалось проще. Content script инжектится на страницы GitLab и у него уже есть доступ к session cookies.
API-запросы с credentials: 'same-origin' проходят как обычные запросы со страницы. Пользователь залогинен в GitLab — расширение работает. Разлогинился — не работает.
Никаких токенов хранить не надо. Для Jira чуть другая схема. Content script не имеет доступа к cookies другого домена, поэтому запросы делает background service worker через chrome.
Отраслевые последствия
Достает session cookies Jira, делает fetch напрямую. Пользователь один раз дает разрешение на домен Jira через optional_host_permissions и все. Наружу ничего не уходит.
Цепочки действий и background workerПростые действия типа rebase или retry failed jobs — это один API-вызов из content script. Но появились составные операции. Например «Ship» — это: запустить rebase, подождать пока закончится, сделать bump версии (найти файл, инкрементить, коммитить), подождать новый пайплайн, включить auto-merge.
Проблема: если пользователь уйдет со страницы, content script умрет вместе с цепочкой. Пришлось вынести логику в background service worker. Он живет пока браузер открыт и не зависит от вкладок.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.




