Script creates a gitea repo if provided
This commit is contained in:
parent
ea06fb48d7
commit
67b7ccec59
@ -7,6 +7,5 @@ Make sure the projectName is set correctly, it's very important.
|
||||
1. Clone me ```git clone git@git.nickyeoman.com:nick/joomla.git projectName```
|
||||
1. cd projectName
|
||||
1. Setup your .env file ```mv env.sample .env``` then edit with your favorite editor.
|
||||
1. bash bin
|
||||
|
||||
1. bash bin/new_project.sh
|
||||
1. sudo docker-compose up -d
|
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECTNAME=$(pwd)
|
||||
PROJECTNAME=$(basename "$(pwd)")
|
||||
SETGITEA=true
|
||||
|
||||
# Verify the .env file exists
|
||||
if [ ! -f ".env" ]; then
|
||||
@ -13,37 +14,10 @@ set -o allexport
|
||||
source .env
|
||||
set +o allexport
|
||||
|
||||
# Verify the required environment variables are set
|
||||
if [ -z "$GITEA_API_URL" ] || [ -z "$ACCESS_TOKEN" ]; then
|
||||
echo "Error: Please make sure GITEA_API_URL and ACCESS_TOKEN are set in the .env file."
|
||||
exit 1
|
||||
# Run Git setup
|
||||
bash bin/new_project/git_setup.sh
|
||||
|
||||
# Run remote Git setup
|
||||
if [ "$SETGITEA" = "true" ]; then
|
||||
bash bin/new_project/remote_git_setup.sh
|
||||
fi
|
||||
|
||||
# Create the repository using Gitea API
|
||||
RESPONSE=$(curl -sSL -H "Authorization: token $ACCESS_TOKEN" -H "Content-Type: application/json" -X POST -d "{\"name\":\"$PROJECTNAME\"}" "$GITEA_API_URL/api/v1/user/repos")
|
||||
|
||||
# Check the API response and handle errors
|
||||
STATUS=$(echo "$RESPONSE" | jq -r '.message')
|
||||
if [ "$STATUS" != "null" ]; then
|
||||
echo "Error: Failed to create $PROJECTNAME repository. $STATUS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Repository '$PROJECTNAME' created successfully on Gitea."
|
||||
|
||||
# Remove existing Git repository information
|
||||
rm -rf .git
|
||||
|
||||
# Initialize a new Git repository
|
||||
git init
|
||||
|
||||
# Add new remote repository
|
||||
git remote add origin "$GITEA_API_URL/$PROJECTNAME.git"
|
||||
|
||||
# Confirm remote configuration
|
||||
git remote -v
|
||||
|
||||
# Commit existing changes
|
||||
git add .
|
||||
git commit -m "Initial commit of new project $PROJECTNAME"
|
||||
git push -u origin master
|
17
bin/new_project/git_setup.sh
Normal file
17
bin/new_project/git_setup.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECTNAME=$(basename "$(pwd)")
|
||||
|
||||
# Remove existing Git repository information
|
||||
rm -rf .git
|
||||
|
||||
rm README.md
|
||||
touch README.md
|
||||
echo "# ${PROJECTNAME}" > README.md
|
||||
echo "" > README.md
|
||||
echo "Created a fresh repo for your ${PROJECTNAME} project." >> README.md
|
||||
|
||||
# Initialize a new Git repository
|
||||
git init
|
||||
git add .
|
||||
git commit -m "Initial commit of new project $PROJECTNAME"
|
50
bin/new_project/remote_git_setup.sh
Normal file
50
bin/new_project/remote_git_setup.sh
Normal file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECTNAME=$(basename "$(pwd)")
|
||||
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
# Debugging
|
||||
echo "DEBUGGING"
|
||||
echo "GITEA API url: $GITEA_API_URL"
|
||||
echo "Access token: $ACCESS_TOKEN"
|
||||
echo "Project name: $PROJECTNAME";
|
||||
fi
|
||||
|
||||
DESC="Repo auto created by Joomla remote git script creator for $PROJECTNAME"
|
||||
|
||||
# Create the repository using Gitea API
|
||||
RESPONSE=$(curl -s -X POST \
|
||||
-H "Authorization: token $ACCESS_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"name\":\"$PROJECTNAME\",\"private\": true,\"description\": \"$DESC\"}" \
|
||||
$GITEA_API_URL/user/repos)
|
||||
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "The RESPONSE:"
|
||||
echo "$RESPONSE"
|
||||
fi
|
||||
|
||||
if [ -z "$RESPONSE" ] || [ "$(echo "$RESPONSE" | jq -r '.id')" = "null" ]; then
|
||||
echo "Error: Failed to create $PROJECTNAME repository."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SSH_URL=$(echo "$RESPONSE" | jq -r '.ssh_url')
|
||||
if [ "$SSH_URL" = "null" ]; then
|
||||
echo "Error: Failed to retrieve SSH URL for $PROJECTNAME repository."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "SSH URL:"
|
||||
echo "$SSH_URL"
|
||||
fi
|
||||
|
||||
echo "Repository '$PROJECTNAME' created successfully on Gitea."
|
||||
|
||||
# Add new remote repository
|
||||
git remote add origin "$SSH_URL"
|
||||
git remote -v
|
||||
|
||||
# Commit existing changes
|
||||
git push -u origin master
|
@ -1,3 +1,6 @@
|
||||
# Run Scripts
|
||||
DEBUG=false
|
||||
|
||||
# Docker
|
||||
NETWORKNAME=admin_web
|
||||
|
||||
|
1
html/index.html
Normal file
1
html/index.html
Normal file
@ -0,0 +1 @@
|
||||
<!-- Placeholder -->
|
Reference in New Issue
Block a user