Основы работы с терминалом / подсказка к 5 задачке

Чтобы создать репозиторий автоматически нам потребуется установить утилиту для работы с вебом

sudo apt install curl

теперь можно общаться с гитхабом, например, запросить список репозиториев

curl -u "ИМЯ_ВАШЕГО_GITHUB_АККАУНТА" https://api.github.com/repositories

Правда надо будет правда ввести пароль от юзера, чтобы увидеть данные.

Чтобы бы получить возможность создавать репозитории надо создать токен для авторизации

затем скролим вниз и находим там Developer Settings

вводим имя и ставим галку

ну и тыкаем внизу

откроется новое окно с токеном, который надо скопировать, сделать это можно ровно один раз, посмотреть его второй раз не выйдет

теперь можно создать репозиторий, для этого пишем

curl -X POST -u "ИМЯ_ВАШЕГО_GITHUB_АККАУНТА:ВАШ_ТОКЕН" \
    https://api.github.com/user/repos \
    -d '{"name":"test124"}' > repo.json

результат сохранится в файлик repo.json, там будет что-то такое

{
    "id": 458448401,
    "node_id": "R_kgDOG1NeEQ",
    "name": "test124",
    "full_name": "SevenLines/test124",
    "private": false,
    "owner": {
        "login": "SevenLines",
        "id": 5500999,
        "node_id": "MDQ6VXNlcjU1MDA5OTk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5500999?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SevenLines",
        "html_url": "https://github.com/SevenLines",
        "followers_url": "https://api.github.com/users/SevenLines/followers",
        "following_url": "https://api.github.com/users/SevenLines/following{/other_user}",
        "gists_url": "https://api.github.com/users/SevenLines/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/SevenLines/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/SevenLines/subscriptions",
        "organizations_url": "https://api.github.com/users/SevenLines/orgs",
        "repos_url": "https://api.github.com/users/SevenLines/repos",
        "events_url": "https://api.github.com/users/SevenLines/events{/privacy}",
        "received_events_url": "https://api.github.com/users/SevenLines/received_events",
        "type": "User",
        "site_admin": false
    },
    // ...
}

чтобы вытащить конкретное поле то можно поставить еще одну утилиту для работы с json форматом json

sudo apt install jq 

можно, например, вывести ssh_url, который потом можно использовать при привязке репозитория вот так:

jq ".ssh_url" -r repo.json

А имя пользователя например вот так:

jq ". owner.login" -r repo.json

Как правило хочется результат сохранить в переменную для этого вызывайте функцию вот так:

SSH_URL=$(jq ".ssh_url" -r repo.json)

Ну а чтобы подключить ключик надо использовать следующий запрос к серверу github

KEY=$(cat ~/.ssh/path_to_key.pub)
curl -u "$USER:$TOKEN" -X POST https://api.github.com/repos/$USER/$REPO_NAME/keys -d "{\"key\":\"$KEY\"}"

В принципе, зная это, можно собрать полностью автоматизированный генератор репозиториев =)

1.5

[Дополнительное] Реализовать автоматическое подключение репозитория к github