74 lines
2.7 KiB
Bash
74 lines
2.7 KiB
Bash
#!/bin/bash
|
|
# This script helps set up the required secrets for Gitea Actions
|
|
# Run this script locally to upload secrets to your Gitea instance
|
|
# Also claude wrote this script, use it more as a reference and base for hacking than anything actually useful.
|
|
|
|
set -e
|
|
|
|
# Ensure token is provided
|
|
if [ -z "$GITEA_TOKEN" ]; then
|
|
echo "Error: GITEA_TOKEN environment variable must be set"
|
|
echo "Create a token at https://gitea.deepak.science/user/settings/applications"
|
|
echo "Then run: export GITEA_TOKEN=your_token"
|
|
exit 1
|
|
fi
|
|
|
|
# API URL from your Gitea instance
|
|
GITEA_API_URL="https://gitea.deepak.science/api/v1"
|
|
REPO_OWNER="$(git remote get-url origin | sed -E 's/.*[:/]([^/]+)\/[^/]+$/\1/')"
|
|
REPO_NAME="$(git remote get-url origin | sed -E 's/.*[:/][^/]+\/([^/.]+)(\.git)?$/\1/')"
|
|
|
|
echo "Setting up secrets for $REPO_OWNER/$REPO_NAME"
|
|
|
|
# Function to create/update a secret
|
|
create_secret() {
|
|
local secret_name="$1"
|
|
local secret_value="$2"
|
|
local description="$3"
|
|
|
|
echo "Setting up secret: $secret_name - $description"
|
|
|
|
# Create payload
|
|
local payload="{\"name\":\"$secret_name\",\"data\":\"$secret_value\"}"
|
|
|
|
# Send to Gitea API
|
|
curl -X PUT \
|
|
-H "Authorization: token $GITEA_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$payload" \
|
|
"$GITEA_API_URL/repos/$REPO_OWNER/$REPO_NAME/secrets/$secret_name"
|
|
|
|
echo -e "\nDone!\n"
|
|
}
|
|
|
|
# Prompt for required secrets
|
|
read -r -p "Enter SSH_GITEA_SSH_KEY (private SSH key for Git operations): " -s SSH_KEY
|
|
echo
|
|
create_secret "SSH_GITEA_SSH_KEY" "$SSH_KEY" "SSH key for Git operations in CI"
|
|
|
|
read -r -p "Enter SSH_GITEA_KNOWN_HOSTS (content for known_hosts file): " KNOWN_HOSTS
|
|
create_secret "SSH_GITEA_KNOWN_HOSTS" "$KNOWN_HOSTS" "Known hosts for SSH connections"
|
|
|
|
read -r -p "Enter PYPI_USERNAME: " PYPI_USER
|
|
create_secret "PYPI_USERNAME" "$PYPI_USER" "PyPI username for publishing"
|
|
|
|
read -r -p "Enter PYPI_API_TOKEN: " -s PYPI_TOKEN
|
|
echo
|
|
create_secret "PYPI_API_TOKEN" "$PYPI_TOKEN" "PyPI API token for publishing"
|
|
|
|
read -r -p "Enter ATTIC_ENDPOINT (URL for Attic cache): " ATTIC_ENDPOINT
|
|
create_secret "ATTIC_ENDPOINT" "$ATTIC_ENDPOINT" "Attic cache endpoint URL"
|
|
|
|
read -r -p "Enter ATTIC_CACHE (name of Attic cache): " ATTIC_CACHE
|
|
create_secret "ATTIC_CACHE" "$ATTIC_CACHE" "Attic cache name"
|
|
|
|
read -r -p "Enter ATTIC_TOKEN (authentication token for Attic): " -s ATTIC_TOKEN
|
|
echo
|
|
create_secret "ATTIC_TOKEN" "$ATTIC_TOKEN" "Attic authentication token"
|
|
|
|
# Create GITEA_TOKEN secret for self-service PR creation
|
|
create_secret "GITEA_TOKEN" "$GITEA_TOKEN" "Gitea API token for automation"
|
|
|
|
echo "All secrets have been set up! Your Gitea Actions workflows should now work properly."
|
|
echo "Make sure to give execution permission to this script with: chmod +x .gitea/setup-secrets.sh"
|