# Gitea Client Skill - Setup Guide

This guide explains how to set up and use the Gitea Client skill for AI agent integration.

## Prerequisites

1. **Gitea Account**: You need access to the Gitea instance at https://gitea.arcodange.lab
2. **Personal Access Token**: Create a token with appropriate permissions
3. **curl and jq**: Required for API interactions

## Setup Instructions

### 1. Create a Personal Access Token

1. Log in to https://gitea.arcodange.lab
2. Go to your profile → Settings → Applications
3. Click "Generate New Token"
4. Set required scopes:
   - `read:repository` - Read repository data
   - `write:repository` - Comment on PRs
   - `read:user` - Read user data
5. Copy the generated token

### 2. Configure Authentication

**Option A: Environment Variable (Simple)**
```bash
export GITEA_API_TOKEN="your_personal_access_token"
```

**Option B: Token File (Recommended for security)**
```bash
echo "your_personal_access_token" > ~/.gitea_token
chmod 600 ~/.gitea_token
export GITEA_API_TOKEN_FILE="$HOME/.gitea_token"
```

### 3. Add to Your Shell Configuration

Add the export command to your `~/.bashrc`, `~/.zshrc`, or equivalent:

```bash
# For environment variable
echo 'export GITEA_API_TOKEN="your_token"' >> ~/.bashrc

# For token file
echo 'export GITEA_API_TOKEN_FILE="$HOME/.gitea_token"' >> ~/.bashrc
```

Then reload your shell:
```bash
source ~/.bashrc
```

## Usage Examples

### Test Your Setup

```bash
# List recent jobs for a workflow
./scripts/gitea-client.sh list-jobs owner repo workflow_id 5

# Check job status
./scripts/gitea-client.sh job-status owner repo job_id
```

### Monitor a CI/CD Job

```bash
# Wait for job completion (5 minute timeout)
./scripts/gitea-client.sh wait-job owner repo job_id 300

# Get logs if failed
./scripts/gitea-client.sh job-logs owner repo job_id
```

### Comment on a Pull Request

```bash
# Add a comment to PR #42
./scripts/gitea-client.sh comment-pr owner repo 42 "Build completed successfully!"

# Get PR status
./scripts/gitea-client.sh pr-status owner repo 42
```

## Troubleshooting

### Common Issues

**401 Unauthorized**
- Check your token is correct
- Verify token has required scopes
- Ensure you're using the right authentication method

**404 Not Found**
- Verify repository owner and name
- Check workflow ID and job ID
- Confirm PR number exists

**429 Too Many Requests**
- Wait and retry
- Consider rate limiting in your scripts
- Contact admin if this persists

### Debugging

Enable verbose output by modifying the script:
```bash
# Change this line in gitea-client.sh
curl -s ...  # Remove -s for verbose output
curl ...     # Shows full request/response
```

## Security Best Practices

1. **Never commit tokens to version control**
2. **Use token files with restrictive permissions** (`chmod 600`)
3. **Rotate tokens regularly**
4. **Use minimal required scopes**
5. **Revoke tokens when no longer needed**

## API Documentation

- **Swagger**: https://gitea.arcodange.lab/swagger.v1.json
- **Gitea API Docs**: https://docs.gitea.com/api/usage

## Support

For issues with the Gitea instance:
- Contact: system administrators
- Instance: https://gitea.arcodange.lab

For issues with this skill:
- Check the SKILL.md for command reference
- Review this README for setup
- Examine the script for implementation details
