Production hardening: kill switch, circuit breaker, trailing stops, log level, holiday calendar
Some checks failed
Build and Test / build (push) Has been cancelled
Some checks failed
Build and Test / build (push) Has been cancelled
This commit is contained in:
204
FIX_GIT_AUTH.md
Normal file
204
FIX_GIT_AUTH.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Fix Git Authentication Issues
|
||||
|
||||
## Problem
|
||||
Git credentials expire after a few hours, causing `Authentication failed` errors.
|
||||
|
||||
---
|
||||
|
||||
## Quick Fix Options
|
||||
|
||||
### Option 1: Re-authenticate (Immediate)
|
||||
|
||||
```powershell
|
||||
# Push and enter credentials when prompted
|
||||
git push
|
||||
|
||||
# Enter your Gitea username and password/token when prompted
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Option 2: Update Credential Helper (Permanent Fix)
|
||||
|
||||
```powershell
|
||||
# Set credential helper to store credentials permanently
|
||||
git config --global credential.helper store
|
||||
|
||||
# Or use Windows Credential Manager (recommended for Windows)
|
||||
git config --global credential.helper wincred
|
||||
|
||||
# Or use manager-core (modern credential manager)
|
||||
git config --global credential.helper manager-core
|
||||
|
||||
# Then push - it will ask for credentials ONE TIME and remember
|
||||
git push
|
||||
```
|
||||
|
||||
After running one of these, the next `git push` will prompt for credentials **once** and then remember them.
|
||||
|
||||
---
|
||||
|
||||
### Option 3: Use SSH Instead of HTTPS (Best Long-term)
|
||||
|
||||
This eliminates password prompts entirely.
|
||||
|
||||
**Step 1: Generate SSH Key**
|
||||
```powershell
|
||||
# Generate new SSH key
|
||||
ssh-keygen -t ed25519 -C "your-email@example.com"
|
||||
|
||||
# Press Enter to accept default location: C:\Users\YourName\.ssh\id_ed25519
|
||||
# Enter a passphrase (or press Enter for no passphrase)
|
||||
```
|
||||
|
||||
**Step 2: Copy Public Key**
|
||||
```powershell
|
||||
# Display your public key
|
||||
cat ~/.ssh/id_ed25519.pub
|
||||
|
||||
# Or copy to clipboard
|
||||
clip < ~/.ssh/id_ed25519.pub
|
||||
```
|
||||
|
||||
**Step 3: Add to Gitea**
|
||||
1. Go to https://git.thehussains.org
|
||||
2. User Settings → SSH/GPG Keys → Add Key
|
||||
3. Paste your public key
|
||||
4. Save
|
||||
|
||||
**Step 4: Update Remote URL**
|
||||
```powershell
|
||||
cd C:\dev\nt8-sdk
|
||||
|
||||
# Check current remote
|
||||
git remote -v
|
||||
|
||||
# Change from HTTPS to SSH
|
||||
git remote set-url origin git@git.thehussains.org:mo/nt8-sdk.git
|
||||
|
||||
# Verify change
|
||||
git remote -v
|
||||
|
||||
# Now push with SSH (no password needed)
|
||||
git push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Option 4: Use Personal Access Token
|
||||
|
||||
**Step 1: Create Token in Gitea**
|
||||
1. Go to https://git.thehussains.org
|
||||
2. User Settings → Applications → Generate New Token
|
||||
3. Name it "NT8-SDK-Development"
|
||||
4. Select scopes: `repo` (full control)
|
||||
5. Generate and **COPY THE TOKEN** (you won't see it again)
|
||||
|
||||
**Step 2: Use Token as Password**
|
||||
```powershell
|
||||
# When prompted for password, paste the token instead
|
||||
git push
|
||||
|
||||
# Username: mo
|
||||
# Password: [paste your token here]
|
||||
```
|
||||
|
||||
**Step 3: Store Token Permanently**
|
||||
```powershell
|
||||
# Configure credential helper
|
||||
git config --global credential.helper store
|
||||
|
||||
# Push once with token
|
||||
git push
|
||||
|
||||
# Enter username and token when prompted
|
||||
# Future pushes won't require credentials
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Recommended Solution
|
||||
|
||||
**For now (immediate):** Use Option 2
|
||||
```powershell
|
||||
git config --global credential.helper manager-core
|
||||
git push
|
||||
# Enter credentials once, will be remembered
|
||||
```
|
||||
|
||||
**For best security:** Use Option 3 (SSH keys)
|
||||
- No passwords to remember
|
||||
- More secure
|
||||
- Works across all Git operations
|
||||
- One-time setup
|
||||
|
||||
---
|
||||
|
||||
## Current Status - What to Do Now
|
||||
|
||||
**Immediate action:**
|
||||
```powershell
|
||||
# Quick fix - store credentials
|
||||
git config --global credential.helper store
|
||||
|
||||
# Push with credentials
|
||||
git push
|
||||
|
||||
# Enter your Gitea username and password
|
||||
# Credentials will be stored for future use
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Verify Credential Helper
|
||||
|
||||
```powershell
|
||||
# Check what credential helper is configured
|
||||
git config --global credential.helper
|
||||
|
||||
# Should show one of:
|
||||
# - store
|
||||
# - wincred
|
||||
# - manager-core
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**If credentials still don't work:**
|
||||
|
||||
```powershell
|
||||
# Clear existing credentials
|
||||
git credential reject <<EOF
|
||||
protocol=https
|
||||
host=git.thehussains.org
|
||||
EOF
|
||||
|
||||
# Try push again with fresh credentials
|
||||
git push
|
||||
```
|
||||
|
||||
**If using 2FA on Gitea:**
|
||||
- You MUST use a Personal Access Token, not your password
|
||||
- See Option 4 above
|
||||
|
||||
---
|
||||
|
||||
## After Fixing Auth
|
||||
|
||||
Once authentication is working, continue with the Phase 5 commit:
|
||||
|
||||
```powershell
|
||||
# Verify you can access remote
|
||||
git fetch
|
||||
|
||||
# Push your commits
|
||||
git push
|
||||
|
||||
# Should succeed without authentication errors
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Recommended: Run Option 2 now, then switch to SSH (Option 3) when you have time.**
|
||||
Reference in New Issue
Block a user