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

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:
- Tworzy katalog o podanej nazwie
- Tworzy projekt z szablonu o powyższej nazwie
- Wyciąga globalna nazwę użytkownika z gita
- Pyta o nazwę repozytorium jakie ma zostać stworzone na githubie
- Pyta o token potrzebny do uwierzytelniania na githubie
- Tworzy repozytorium na githubie o wpisanej nazwie
- Uruchamia w kolejności kilka komend
git
:git init
->git add -A
->git commit
->git add remote
-> `git push origin master` - Pobiera nazwę brancha od użytkownika
- 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