Hitta nått kul:
13 Pixlar   /   Tips   /   Kodtips   /   Skapa Github-repos direkt från command line

Skapa Github-repos direkt från command line

19 May, 2014

Följande kommando skapar ett Github-repo direkt från terminalen:

$ curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'

För att du skapa ett privat repo:

$ curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO", "private":"true"}'

Följande bash-script förenklar och automatiserar processen att skapa ett Github-repo direkt från terminalen.

#!/bin/bash
# Detta script skapar ett nytt repo på github.com
 
# Detta är en fork av https://gist.github.com/jerrykrinock/6618003. Något modifierat och översatt till svenska.
 
# Fånga konstanta variabler
CURRENTDIR=${PWD##*/}
GITHUBUSER=$(git config github.user)
# Get user input
echo "Ange ett namn för Github-nytt repo eller tryck  för: $CURRENTDIR"
read REPONAME
echo "Ange ett ett Github-användarnamn eller tryck  för: $GITHUBUSER"
read USERNAME
echo "Ange en beskrivning för det nya repot och kryck "
read DESCRIPTION
echo "Tryck  för ett publikt repo eller 'x' för ett privat repo"
read PRIVATE_ANSWER
 
if [ "$PRIVATE_ANSWER" == "x" ]; then
PRIVACYWORD=private
PRIVATE_TF=true
else
PRIVACYWORD=public
PRIVATE_TF=false
fi
 
REPONAME=${REPONAME:-${CURRENTDIR}}
USERNAME=${USERNAME:-${GITHUBUSER}}
 
echo "Skapar ett nytt *$PRIVACYWORD* repo med namnet $REPONAME"
echo "på github.com in användarkontot $USERNAME, med beskrivningen:"
echo $DESCRIPTION
echo "Tryck 'y' för att fortsätta eller någon annan tangent för att avbryta."
read OK
if [ "$OK" != "y" ]; then
echo "Avbröts av användaren"
exit
fi
 
curl -u $USERNAME https://api.github.com/user/repos -d "{\"name\": \"$REPONAME\", \"description\": \"${DESCRIPTION}\", \"private\": $PRIVATE_TF, \"has_issues\": true, \"has_downloads\": true, \"has_wiki\": false}"
git remote add origin https://github.com/$USERNAME/$REPONAME.git
git push --set-upstream origin master

Detta tips finns även inkluderat i Git-artikeln som publicerats tidigare här på 13 Pixlar.