Skip to content
This repository has been archived by the owner on Dec 4, 2023. It is now read-only.

supar/glivc

Repository files navigation

GitLab interface to view commits (glivc)

Зачем все это нужно

Актуальность данного сервиса возникла из-за требования создать сервис, который позволит различным отделам, не имеющим прямого отношения к разработке, просматривать историю развития функционала проекта на основе коммитов, ограничить доступ к коду проекта. Ограничения API GitLab не озволяющие решить стандартными средствами:

  1. Пользователь с правами "Гость" видит историю только ветки по-умлочанию, как правило master. Неудовлетворяет, нет возможности посмотреть ветки подготовленные к ПМИ
  2. Пользователь с правами "Reporter" получает доступ к коду.
  3. Низкая гибкость фильтров

Это простой сервис, написанный на Golang, взаимодействует с API GitLab для получения списка доступных проектов и веток и через libgit2 получает историю коммитов непосредатвенно из репозитория проекта. Решает следующие задачи:

  1. Доступ только к списку проектов и веток
  2. Гибкие фильтры позволяющие получить историю коммитов

Запуск сервиса

Особенность Golang приложений - программа без "магии" всегда запускается в forground, для запуска в backgrtound нужно использовать screen или nohup. Мне предпочтителен screen Пример запуска приложения в background через screen

>$ screen -L -d ./glivc

Сборка debian пакета для jessie

В каталоге contribs/docker/jessie приложен сценарий для создания сборочного docker контенера. Предположим, что собран контейнер glivc-build, чтобы собрать пакет для debian jessie нужно перейти в папку с проектом и выполнить команду:

>$ docker run -it --rm -v $(pwd):/go/src/glivc -w /go/src/glivc glivc-build deb

После сборки пакет размещается в папке build/debian

API

Получить список проектов

GET http://localhost:9999/project

Информация по одному проекту

GET http://localhost:9999/project/ID

Где ID числовой идентификатор проекта

Получить список веток

GET http://localhost:9999/project/ID/branches

Где ID числовой идентификатор проекта

Информация по одной ветке

GET http://localhost:9999/project/ID/branches/BRANCH_NAME

Где ID числовой идентификатор проекта, BRANCH_NAME - имя ветки

Список коммитов

GET http://localhost:9999/project/ID/branch/commits/BRANCH_NAME

Где ID - числовой идентификатор проекта, BRANCH_NAME - имя ветки

Дополнительные параметры запроса

  • page - номер страницы (default:1)
  • limit - количество записей на странице (default:unlimit)
  • author - идентификатор автора. Проверяется вхождение значение этого параметра в подписи автора к коммиту: имя, email. В качестве поиска лучше использовать email. Этот параметр можно передать несколько раз http://localhost:9999/project/ID/branch/commits/BRANCH_NAME?author=user1&author=user2
  • merge - исключить/включить коммиты Merge Request (default:0)
  • msg - поиск по комментарию коммита
  • since - убрать коммиты предшествующие указанной дате. Формат 2006-01-02T15:04:05
  • till - убрать коммиты слудующие после указанной даты. Формат 2006-01-02T15:04:05

About

GitLab interface to view commits

Resources

Stars

Watchers

Forks

Packages

No packages published