Team Ai
Apppublic

LetsTryGPT/agent4-implementation

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
setup-github-secrets.sh97 linesDownload Raw Back to scripts
1#!/bin/bash2 3# Setup GitHub Secrets for agent4-implementation4# This script uses the GitHub API to set repository secrets5 6set -e7 8REPO="NovusAevum/agent4-implementation"9GITHUB_TOKEN="${GITHUB_TOKEN:-}"10 11if [ -z "$GITHUB_TOKEN" ]; then12    echo "โŒ Error: GITHUB_TOKEN environment variable is not set"13    echo "Please set it with: export GITHUB_TOKEN='your_token_here'"14    exit 115fi16 17echo "๐Ÿ” Setting up GitHub Secrets for $REPO..."18 19# Function to encrypt and set a secret20set_secret() {21    local secret_name=$122    local secret_value=$223    24    echo "Setting $secret_name..."25    26    # Get public key27    response=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \28        "https://api.github.com/repos/$REPO/actions/secrets/public-key")29    30    key_id=$(echo "$response" | jq -r '.key_id')31    public_key=$(echo "$response" | jq -r '.key')32    33    # Encrypt the secret using Python and libsodium34    encrypted=$(python3 << EOF35import base6436import json37from nacl import encoding, public38 39def encrypt_secret(public_key: str, secret_value: str) -> str:40    public_key_bytes = base64.b64decode(public_key)41    public_key_obj = public.PublicKey(public_key_bytes)42    sealed_box = public.SealedBox(public_key_obj)43    encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))44    return base64.b64encode(encrypted).decode("utf-8")45 46print(encrypt_secret("$public_key", "$secret_value"))47EOF48)49    50    # Set the secret51    curl -s -X PUT \52        -H "Authorization: token $GITHUB_TOKEN" \53        -H "Content-Type: application/json" \54        -d "{\"encrypted_value\":\"$encrypted\",\"key_id\":\"$key_id\"}" \55        "https://api.github.com/repos/$REPO/actions/secrets/$secret_name" > /dev/null56    57    echo "โœ… $secret_name set successfully"58}59 60# Install PyNaCl if not present61if ! python3 -c "import nacl" 2>/dev/null; then62    echo "๐Ÿ“ฆ Installing PyNaCl..."63    pip3 install PyNaCl --quiet64fi65 66# Set all secrets from environment variables67HF_TOKEN_VALUE="${HF_TOKEN:-}"68HF_USERNAME_VALUE="${HF_USERNAME:-LetsTryGPT}"69VERCEL_KEY_VALUE="${VERCEL_AI_GATEWAY_API_KEY:-}"70 71if [ -z "$HF_TOKEN_VALUE" ]; then72    echo "โš ๏ธ  Warning: HF_TOKEN not set, skipping..."73else74    set_secret "HF_TOKEN" "$HF_TOKEN_VALUE"75fi76 77set_secret "HF_USERNAME" "$HF_USERNAME_VALUE"78 79if [ -z "$VERCEL_KEY_VALUE" ]; then80    echo "โš ๏ธ  Warning: VERCEL_AI_GATEWAY_API_KEY not set, skipping..."81else82    set_secret "VERCEL_AI_GATEWAY_API_KEY" "$VERCEL_KEY_VALUE"83fi84 85echo ""86echo "๐ŸŽ‰ All secrets configured successfully!"87echo ""88echo "Configured secrets:"89echo "  - HF_TOKEN"90echo "  - HF_USERNAME"91echo "  - VERCEL_AI_GATEWAY_API_KEY"92echo ""93echo "Note: You may need to add additional secrets for Vercel deployment:"94echo "  - VERCEL_TOKEN"95echo "  - VERCEL_ORG_ID"96echo "  - VERCEL_PROJECT_ID"97