Php модуль для работы с git репозиторием
Нужен php модуль для работы с git репозиторием, со следующей функциональностью:
- Получить структуру каталогов и содержимое произвольных файлов репозитория исходного кода
- Получить список "коммитов" в репозиторий и перечень файлов в коммите
- Получить список версий произвольного файла и содержимое каждой версии файла
Ограничения:
- Код должен быть реализован на PHP 5, с минимальными внешними зависимостями, кроссплатформенный
- Доступ к репозиторию должен осуществляться через webdav
- Не могут быть использованы уже написанные кем-то классы или компоненты, имеющие коммерческую лицензию
Спецификация интерфейса модуля (на псевдоязыке):
/*
* interface RevisionIterator extends Iterator
* {
* string getVersion();
* string getDateTime();
* string getComment();
* string getAuthor();
* string getAction();
* }
*
* interface FileIterator extends Iterator
* {
* string getPath();
* string getName();
* long getLength();
* string getDateTime();
* string getType();
* string getStatus();
* string getAuthor();
* string getContentType();
* }
*
* interface Repository
* {
* // returns list of commits in the given range of revisions of the whole repository
* RevisionIterator getRevisions( string from_revision, string to_revision );
*
* // returns list of files on the path
* FileIterator getFiles( string path );
*
* // returns file content of the given version on the path
* string getFile( string path, string revision );
*
* // returns list of commits within the file in the given range of revisions
* RevisionIterator getFileRevisions( string path, string from_revision, string to_revision );
*
* // returns list of files where changes in the given commit
* FileIterator getFilesInRevision( string revision );
* }
*
*/
Ожидаемый результат:
- Набор классов на PHP, реализующих описанную функциональность
- Дополнительные компоненты (если используются)
- Тестовое окружение, на котором быстро можно проверить работу модуля (или подробная инструкция как его развернуть)