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. Clone me ```git clone git@git.nickyeoman.com:nick/joomla.git projectName```
|
||||||
1. cd projectName
|
1. cd projectName
|
||||||
1. Setup your .env file ```mv env.sample .env``` then edit with your favorite editor.
|
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. sudo docker-compose up -d
|
@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
PROJECTNAME=$(pwd)
|
PROJECTNAME=$(basename "$(pwd)")
|
||||||
|
SETGITEA=true
|
||||||
|
|
||||||
# Verify the .env file exists
|
# Verify the .env file exists
|
||||||
if [ ! -f ".env" ]; then
|
if [ ! -f ".env" ]; then
|
||||||
@ -13,37 +14,10 @@ set -o allexport
|
|||||||
source .env
|
source .env
|
||||||
set +o allexport
|
set +o allexport
|
||||||
|
|
||||||
# Verify the required environment variables are set
|
# Run Git setup
|
||||||
if [ -z "$GITEA_API_URL" ] || [ -z "$ACCESS_TOKEN" ]; then
|
bash bin/new_project/git_setup.sh
|
||||||
echo "Error: Please make sure GITEA_API_URL and ACCESS_TOKEN are set in the .env file."
|
|
||||||
exit 1
|
# Run remote Git setup
|
||||||
|
if [ "$SETGITEA" = "true" ]; then
|
||||||
|
bash bin/new_project/remote_git_setup.sh
|
||||||
fi
|
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
|
# Docker
|
||||||
NETWORKNAME=admin_web
|
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