2014-01-11 2 views
5

Я пытаюсь использовать функцию обзора кода Phabricator для представления кода класса учениками в классе. Код привязан к серверу Subversion, в котором каждый ученик имеет свою собственную папку в верхнем уровне на сервере. Для текущих классов я не контролирую местоположение корня. Если бы я это сделал, я бы просто переместил его, чтобы была папка, содержащая все репозитории учащихся только для классов, которые мне нужны, и создать репо в этой папке и отличается от нижних ветвей, но на данный момент я не могу.Командная строка phabricator для создания репозитория

Я нашел способ сделать почти все, что мне нужно сделать в Phabricator из командной строки, например, создать каждого из учеников и создать diff. Единственное, что я не могу понять, как это сделать: Создать репозиторий.

Я просмотрел варианты в помощи для Фабрикатора и заклинателя, но я не видел ничего похожего на то, что мне нужно.

Кто-нибудь знает, можно ли создать репозиторий из командной строки Phabricator или arc? Или каким-то другим автоматическим способом?

Спасибо!

ответ

7

У нас нет простого способа сделать это прямо сейчас, но вы можете использовать arc для вызова API-интерфейса Conduit. Труба капля JSON в него:

echo '{"name":"repo name", ...}' | arc call-conduit repository.create 

Вы можете получить доступ к /conduit/method/repository.create/ на веб-интерфейс для списка параметров принимает вызов.

+0

Большое спасибо! Это поможет! – AStouder

0

Обновление для ответа Эвана Пристли: метод API изменился на diffusion.repository.edit.

Документация разработчика объясняет, как создать и активировать репозиторий here. Копирование из этого документа:

Создать репозиторий:

$ echo '{ 
    "transactions": [ 
    { 
     "type": "vcs", 
     "value": "git" 
    }, 
    { 
     "type": "name", 
     "value": "Poetry" 
    } 
    ] 
}' | arc call-conduit diffusion.repository.edit 

дистанционного URL-адрес (если это необходимо), используя идентификатор транзакции из первого ответа:

$ echo '{ 
    "transactions": [ 
    { 
     "type": "repository", 
     "value": "PHID-REPO-7vm42oayez2rxcmpwhuv" 
    }, 
    { 
     "type": "uri", 
     "value": "https://github.com/epriestley/poems.git" 
    }, 
    { 
     "type": "io", 
     "value": "observe" 
    } 
    ] 
}' | arc call-conduit diffusion.uri.edit 

Активировать репо:

$ echo '{ 
    "objectIdentifier": "PHID-REPO-7vm42oayez2rxcmpwhuv", 
    "transactions": [ 
    { 
     "type": "status", 
     "value": "active" 
    } 
    ] 
}' | arc call-conduit diffusion.repository.edit 

Список всех допустимых параметров доступен в веб-интерфейсе пользователя по адресу /conduit/method/diffusion.repository.edit/.

Смежные вопросы