Библиотека взаимодействия с API GitHub
Библиотека упрощает взаимодествие с GitHub API из OneScript.
В консоли выполняем:
opm install github
Качаем последний релиз со страницы Релизы. Затем из командной строки:
opm install -f github*.ospx
Авторизация выполняется по token github. Как получить токен можно почитать тут.
#Использовать github
Токен = "какой-то-токен";
Клиент = Новый КлиентGitHub(Токен);
Доступные поля:
ИмяПользователя = "mylogin";
Пользователь = Клиент.ПолучитьПользователя(ИмяПользователя);
или
ИмяПользователя = "mylogin";
Пользователь = Клиент.ПолучитьПользователя(Новый ПользовательGitHub(ИмяПользователя));
Достуные поля:
ИмяОрганизации = "myorg";
Организация = Клиент.ПолучитьОрганизацию(ИмяОрганизации);
или
ИмяОрганизации = "myorg";
Организация = Клиент.ПолучитьОрганизацию(Новый ОрганизацияGitHub(ИмяОрганизации));
Доступные поля:
ИмяВладельца = "freeCodeCamp"; // пользователь или организация
ИмяРепозитория = "freeCodeCamp";
Репозиторий = Клиент.ПолучитьРепозиторий(ИмяВладельца, ИмяРепозитория);
или
Владелец = Новый ОрганизацияGitHub("freeCodeCamp");
ИмяРепозитория = "freeCodeCamp";
Репозиторий = Клиент.ПолучитьРепозиторий(Владелец, ИмяРепозитория);
или
Репозиторий = Клиент.ПолучитьРепозиторий(Новый РепозиторийGitHub("freeCodeCamp/freeCodeCamp"));
Для получения сотрудников (collaborators) репозитория:
Владелец = "oscript-library";
Репозиторий = "add";
Сотрудники = Клиент.ПолучитьСотрудниковРепозитория(Владелец, Репозиторий);
В результате будет получен массив ПользовательGitHub
с разрешениями.
Для получения списка репозиториев пользователя / организации используется НавигаторРепозиториев
.
Владелец = Клиент.ПолучитьОрганизацию(Новый ОрганизацияGitHub("oscript-library"));
Навигатор = Новый НавигаторРепозиториев(Владелец);
Результат = Навигатор.ПолучитьВесьСписок(Клиент);
Будет получен массив репозиториев (весь список).
Владелец = Клиент.ПолучитьОрганизацию(Новый ОрганизацияGitHub("oscript-library"));
Навигатор = Новый НавигаторРепозиториев(Владелец);
Пока Навигатор.ПолучитьСледующие() Цикл
Сообщить(Навигатор.Репозитории.Количество());
КонецЦикла;
Для получения списка репозитория постранично.
Доступные поля:
Репозиторий = Новый РепозиторийGitHub("freeCodeCamp/freeCodeCamp");
Контент = Клиент.ПолучитьКонтент(Репозиторий, "readme");
Для создания форка репозитория в организацию
#Использовать github
Токен = "какой-то-токен";
Клиент = Новый КлиентGitHub(Токен);
КлиентGitHub.СоздатьФоркВОрганизацию("freeCodeCamp", "freeCodeCamp", "oscript-library");
Для предоставления доступа другому пользователю к репозиторию
#Использовать github
Токен = "какой-то-токен";
Клиент = Новый КлиентGitHub(Токен);
КлиентGitHub.ПредоставитьДоступКРепозиторию("oscript-library", "freeCodeCamp", "какой-то-пользователь", "push");