Я пытаюсь создать оператор if, который будет проверять, существует ли репозиторий с именем X, если он не создает его =>.
Сделал следующий код. Это работает, но когда репозиторий не существует, выдает ошибку. Я не мог найти способы удалить эту ошибку в консоли. Сделать так, чтобы я использовал &>/dev/null неправильно...
myStr=$(git ls-remote https://github.com/user/repository);
if [ -z $myStr ]
then
echo "OMG IT WORKED"
figit ls-удаленный github.com/пользователь/репозиторий || истинный? Все равно у меня ошибка
удаленный: репозиторий не найден. фатально: репозиторий 'github.com/user/repo' не найден
Я бы использовал curl / wget и т. д., Чтобы найти 404, что может быть лучшим вариантом, иначе вам нужно будет войти в систему или настроить открытые ключи заранее, что тогда вы все равно можете создать репо через github.
@LevShapiro, вы используете https://github.com/user/repository в качестве URL-адреса репо в своем коде? Попробуйте обновить свой код, чтобы использовать репозиторий, который, как вы знаете, существует и к которому у вас есть доступ. (Я не думаю, что есть репо с URL-адресом https://github.com/user/repository)
@j_b github.com/пользователь/репозиторий - это просто пример. Я использую пользователя в качестве имени моей учетной записи и репозиторий в качестве имени репозитория.
@LawrenceCherone, отличная идея, работает как нужно





Как только вы полная тишина git ls-remote, я предложу проверить код выхода команды ($?), а не ее вывод.
Основываясь на вашем коде, вы можете рассмотреть функцию следующим образом:
check_repo_exists() {
repoUrl = "$1"
myStr = "$(git ls-remote -q "$repoUrl" &> /dev/null)";
if [[ "$?" -eq 0 ]]
then
echo "REPO EXISTS"
else
echo "REPO DOES NOT EXIST"
fi
}
check_repo_exists "https://github.com/kubernetes"
# REPO DOES NOT EXIST
check_repo_exists "https://github.com/kubernetes/kubectl"
# REPO EXISTS
А как насчет stackoverflow.com/questions/11231937/… ?