Automatyzacja tworzenia nowego projektu i repozytorium w .NET Core i GitHub

Opublikowane przez admin w dniu

Dziś krótki wpis o automatyzacji tworzenia nowego projektu. Obecnie pracuje w zespole gdzie dosyć często tworzone są nowe projekty. Do tej pory tworzyliśmy zadania w jirze, które polegały właśnie na stworzeniu projektu i repozytorium itp. Stało się to uciążliwe więc zautomatyzowaliśmy ten proces przy pomocy prostego skryptu.

Przed jego uruchomieniem musimy stworzyć szablon naszego projektu. W .NET Core jest to dziecinnie proste. Jak to zrobić można przeczytać tutaj. Następnie odpalamy poniższy skrypt, który składa się z kilku kroków:

  1. Tworzy katalog o podanej nazwie
  2. Tworzy projekt z szablonu o powyższej nazwie
  3.  Wyciąga globalna nazwę użytkownika z gita
  4. Pyta o nazwę repozytorium jakie ma zostać stworzone na githubie
  5. Pyta o token potrzebny do uwierzytelniania na githubie
  6. Tworzy repozytorium na githubie o wpisanej nazwie
  7. Uruchamia w kolejności kilka komend git: git init -> git add -A-> git commit -> git add remote -> `git push origin master`
  8. Pobiera nazwę brancha od użytkownika
  9. Robi git checkout -b z powyższą nazwą
organizationName="MyOrganizationName"

# create project from template
read -p "Type project name:" answer

# create directory
mkdir $answer && cd $answer

#create project from template
dotnet new mytemplate -n $answer


# get user name from git
username=`git config --global user.name`
if [ "$username" = "" ]; then
    echo "Could not find username"
    exit 1
fi

# get repo name
dir_name=`basename $(pwd)`
read -p "Do you want to use '$dir_name' as a repo name?(y/n)" answer_dirname
case $answer_dirname in
  y)
    # use currently dir name as a repo name
    reponame=$dir_name
    ;;
  n)
    read -p "Enter your new repository name: " reponame
    if [ "$reponame" = "" ]; then
        reponame=$dir_name
    fi
    ;;
  *)
    ;;
esac

# get token got authentication
echo -n Type auth token: 
read -s token
echo

# create repo in github
echo "Creating Github repository '$reponame' ..."
curl -s -u $username:$token  https://api.github.com/orgs/$organizationName/repos -d '{"name":"'$reponame'", "private": true}' > /dev/null
echo "Done"

echo "Pushing init commit"

# git init
git init --quiet
git add -A
git commit -m "init" --quiet

#git add remote
remoteUrl=https://github.com/$organizationName/$reponame
git remote add origin $remoteUrl 

#git push
git push origin master --quiet
echo "Pushed successfully to '$remoteUrl'"

#git checkout to branch
read -p "Type branch name:" branchName
git checkout -b $branchName

echo "Done"

cmd /k

 

Po zakończeniu skryptu jesteśmy gotowi do wrzucania kodu na nowym branchu do nowo powstałego repozytorium.

 

Źródła:

https://coderwall.com/p/gfjuag/create-github-repository-with-shell-script