ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Public read-only API for prometheus
@ 2010-07-19 16:09 Igor Zubkov
  2010-07-19 16:17 ` Artem Zolochevskiy
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Igor Zubkov @ 2010-07-19 16:09 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Hi!

Предлагаю обсудить будущую реализацию API для prometheus. Мое мнение
такое что через API должны быть доступны все данные что есть на сайте.
Или, если посмотреть на это с другой стороны, что бы через это API
можно было реализовать такой же сайт с контентом как и prometheus.

Пока моей фантазии хватило на:
match '/api/v1/count/:vendor/:branch', :to => 'api#count' или просто

(эти ссылки на текущем prometheus.a.o пока не работают)
/api/v1/count/ALT%20Linux/Sisyphus вернёт количество src.rpm которые
сейчас есть в Сизифе.
/api/v1/count/ALT%20Linux/SisyphusARM вернёт количество src.rpm
которые сейчас есть в порте Сизифа на arm
Ну и так далее, с вендорами и бранчами.

Дёргать это примерно так:
$ curl  http://server/api/v1/count/ALT%20Linux/Sisyphus

Я предлагаю:
/api/v1/packagers -- вернёт список логинов маинтейнеров
/api/v1/packager/:login -- вернёт Full Name маинтейнера
/api/v1/packager/:login/acl -- вернёт список acl для маинтейнера Сизифе
/api/v1/packager/:login/gear -- вернёт список gear репозиторией маинтейнера
/api/v1/packager/:login/bugs -- вернёт список номеров не закрытых
багов на маинтейнере
/api/v1/packager/:login/allbugs -- вернёт список номеров всех багов на
маинтейнере
/api/v1/packager/:login/repocop -- отчёты repocop для всех пакетов маинтейнера

/api/v1/srpm/:branch/:name -- информация о пакете :name из бранча :branch
/api/v1/srpm/:branch/:name/changelog -- changelog пакета
/api/v1/srpm/:branch/:name/spec -- spec пакета
/api/v1/srpm/:branch/:name/get -- список из src.rpm и бинарных пакетов
собранных их этого src.rpm пакета
/api/v1/srpm/:branch/:name/gear -- список из маинтейнеров у которых в
gear есть пакет :name
/api/v1/srpm/:branch/:name/bugs -- номера открытых багов на пакет :name
/api/v1/srpm/:branch/:name/allbugs -- номера всех багов на пакет :name
/api/v1/srpm/:branch/:name/repocop -- отчёты repocop на пакет :name

Этого должно вполне хватить что бы сделать prometheus через только это API.

Это интересно, но не очень. Надо что-то по интереснее. Например такое:
/api/v1/requires/:vendor/:branch/:name -- список зависимостей пакета
:name из бранча :branch
/api/v1/provides/:vendor/:branch/:name -- список того что провайдит пакет
/api/v1/buildreq/:vendor/:branch/:name -- список сборочных
зависимостей пакета (тут наверно их надо будет сделать два, первый из
spec а второй уже полный список пакетов которые ставятся в hasher для
сборки)
/api/v1/reqforbuild/:vendor/:branch/:name -- список пакетов которые
требуют для сборки :name

/api/v1/:library/:symbol -- список пакетов которые подцепили :symbol
из библиотеки :library и которые надо будет пересобрать в транзакции

Для это всего добавить пару консольных утилит и будет просто чудесно.
Как пример, говорим rpmsodiff и получаем не только что у нас ушло и
пришло, но список пакетов это заденет.

Ну как? Ничего не забыл? Или может у кого есть какие-то ещё предложения?

P.S.: И да, это только read-only API. О API для записи можно и потом
подумать, если понадобится.

-- 
Igor Zubkov
http://hi.im/ice

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-07-23 11:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-19 16:09 [devel] Public read-only API for prometheus Igor Zubkov
2010-07-19 16:17 ` Artem Zolochevskiy
2010-07-19 16:21   ` Igor Zubkov
2010-07-19 16:20 ` Slava Semushin
2010-07-19 16:27   ` Andrey Rahmatullin
2010-07-20 15:00   ` Igor Zubkov
2010-07-21  2:07     ` REAL
2010-07-23 11:54       ` Rinat Bikov
2010-07-19 16:53 ` Vitaly Kuznetsov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git