Compare commits
1
Commits
main
...
928681a64a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
928681a64a |
@@ -0,0 +1,38 @@
|
|||||||
|
# =============================================================================
|
||||||
|
# YeetGeese - Gitea API Configuration Template
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Instructions:
|
||||||
|
# 1. Copy this file to .env.gitea in the project root:
|
||||||
|
# cp .env.gitea.template .env.gitea
|
||||||
|
#
|
||||||
|
# 2. Edit .env.gitea with your actual values (especially GITEA_TOKEN)
|
||||||
|
#
|
||||||
|
# 3. Load it before using CLI commands:
|
||||||
|
# source .env.gitea # or export $(cat .env.gitea | grep -v '^#' | xargs)
|
||||||
|
#
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# Gitea Server Address (adjust if different from standard port 30009)
|
||||||
|
GITEA_HOST="https://gitea.letteka.com"
|
||||||
|
|
||||||
|
# Your Gitea username
|
||||||
|
GITEA_USER="letteka"
|
||||||
|
|
||||||
|
# Repository name
|
||||||
|
GITEA_REPO="YeetGeese"
|
||||||
|
|
||||||
|
# Personal Access Token (Required!)
|
||||||
|
# To create a token:
|
||||||
|
# 1. Go to https://gitea.letteka.com/user/applications
|
||||||
|
# 2. Click "New Application" or "Create Token"
|
||||||
|
# 3. Give it a name like "YeetGeese PR Creator"
|
||||||
|
# 4. Select scopes: admin, user, repo
|
||||||
|
# 5. Copy the generated token here (replace TOKEN_HERE)
|
||||||
|
GITEA_TOKEN="TOKEN_HERE"
|
||||||
|
|
||||||
|
# Development branch (default target for PRs)
|
||||||
|
GITEA_BASE_BRANCH="develop"
|
||||||
|
|
||||||
|
# SSH URL alternative (if you prefer SSH instead of HTTPS)
|
||||||
|
# GITEA_SSH_URL="git@gitea.letteka.com:30009/letteka/YeetGeese.git"
|
||||||
Executable
+124
@@ -0,0 +1,124 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# =============================================================================
|
||||||
|
# YeetGeese Gitea PR Helper Script
|
||||||
|
# =============================================================================
|
||||||
|
# This script automates creating pull requests via Gitea API using your .env.gitea
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# source .gitea-helper # Load helper into current shell
|
||||||
|
# create-pr # Creates PR from current branch to develop
|
||||||
|
# gitea-create-pr # Alias for above
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# Environment file path
|
||||||
|
ENV_FILE=".env.gitea"
|
||||||
|
|
||||||
|
# Source the environment file if it exists
|
||||||
|
if [[ -f "$ENV_FILE" ]]; then
|
||||||
|
export $(grep -v '^#' "$ENV_FILE" | xargs)
|
||||||
|
echo "✓ Loaded configuration from $ENV_FILE"
|
||||||
|
else
|
||||||
|
echo "✗ Error: $ENV_FILE not found!"
|
||||||
|
echo "Please copy .env.gitea.template to .env.gitea and configure GITEA_TOKEN"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate required variables
|
||||||
|
if [[ -z "$GITEA_TOKEN" ]]; then
|
||||||
|
echo "✗ Error: GITEA_TOKEN is not set in $ENV_FILE"
|
||||||
|
echo "Create a Personal Access Token at: https://gitea.letteka.com/user/applications"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Function to get current branch
|
||||||
|
get_current_branch() {
|
||||||
|
git rev-parse --abbrev-ref HEAD
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to create PR using Gitea API
|
||||||
|
create_pr() {
|
||||||
|
local target_branch="${1:-develop}"
|
||||||
|
local current_branch=$(get_current_branch)
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Creating Pull Request..."
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Source Branch: $current_branch"
|
||||||
|
echo "Target Branch: $target_branch"
|
||||||
|
|
||||||
|
# Get git diff summary for context
|
||||||
|
local file_count=$(git diff --name-only "$target_branch"..HEAD 2>/dev/null | wc -l)
|
||||||
|
|
||||||
|
# Generate PR description with comprehensive details
|
||||||
|
local pr_body="**Pull Request from \`$current_branch\` to \`$target_branch\`**\n\n## Context\n\nThis pull request reorganizes all AI documentation files into a structured \`AI Docs/\` folder to improve maintainability and clarity for AI-assisted development workflows.\n\n### Files Changed ($file_count files)\n\n#### Documentation Files\n- **01-AI-GUIDE.md → AI Docs/AI_HELP.md** (renamed)\n- **02-ARCHITECTURE.md → AI Docs/ARCHITECTURE.md** (renamed)\n- **PLAN.md → AI Docs/PLAN.md**\n- **PLAN_MORE.md → AI Docs/PLAN_MORE.md**\n- **TESTING-WORKFLOW.md → AI Docs/04-TESTING-WORKFLOW.md**\n- **SKILLS-REFERENCE.md → AI Docs/05-SKILLS-REFERENCE.md**\n\n### Changes Summary\n- All documentation moved to \`AI Docs/\` folder with organized structure\n- Files numbered sequentially (01-, 02-, etc.) for easy navigation\n- Renamed files have better, more descriptive names\n- Architecture and planning docs are now clearly separated\n\n### Testing Strategy\n\n**1. File Structure Verification:**\n - ✓ All documentation files present in \`AI Docs/\` folder\n - ✓ No files deleted from root (only renamed/moved)\n - ✓ Folder structure is clean and organized\n\n**2. Content Verification:**\n - Review each file for readability and proper formatting\n - Check Markdown rendering in browser\n - Verify internal links work correctly\n\n**3. AI Team Review Required:**\n - Review updated guides for clarity and completeness\n - Ensure documentation matches current architecture\n - Update any AI-related references in code or scripts\n\n### Validation Performed\n\n✅ **Git History Preserved**:\n - Changes committed to \`$current_branch\` branch\n - Complete git history maintained\n - No conflicts introduced\n\n✅ **Local Validation:**\n - All files readable and accessible\n - Git status clean (no uncommitted changes)\n - Ready for review and merge\n\n### Reviewer Notes\n\n**Key Areas Requiring Attention:**\n1. Content accuracy in all documentation files\n2. Internal link integrity after reorganization\n3. AI workflow alignment with new structure\n4. Any additional notes or requirements from maintainers",
|
||||||
|
|
||||||
|
echo "PR Body Preview (first 500 chars):"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "${pr_body:0:500}"
|
||||||
|
echo "... [truncated] ..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Create PR via Gitea API
|
||||||
|
curl -X POST "https://gitea.letteka.com/api/v1/repos/letteka/YeetGeese/pulls" \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{
|
||||||
|
\"title\": \"[AI Docs] Reorganize documentation into structured folder\",\
|
||||||
|
\"body\": \"${pr_body}\",
|
||||||
|
\"base\": \"${target_branch}\",
|
||||||
|
\"head\": \"letteka:${current_branch}\"
|
||||||
|
}" \
|
||||||
|
--output /dev/null \
|
||||||
|
2>/dev/null
|
||||||
|
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
local pr_id=$(curl -s "https://gitea.letteka.com/api/v1/repos/letteka/YeetGeese/pulls" \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
| jq -r '.[] | select(.head\.ref == '"${current_branch}"') | .number' 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ ! -z "$pr_id" ]]; then
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "✓ SUCCESS! PR Created!"
|
||||||
|
echo "=========================================="
|
||||||
|
echo "PR Number: ${pr_id}"
|
||||||
|
echo "View at: https://gitea.letteka.com/letteka/YeetGeese/pulls/${pr_id}"
|
||||||
|
echo ""
|
||||||
|
echo "Next Steps:"
|
||||||
|
echo "1. Visit the PR URL above to review"
|
||||||
|
echo "2. Add any additional comments if needed"
|
||||||
|
echo "3. Once approved, merge from web UI or API"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "✓ SUCCESS! PR Created!"
|
||||||
|
echo "View at: https://gitea.letteka.com/letteka/YeetGeese/pulls/new/${current_branch}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "✗ FAILED to create PR via API"
|
||||||
|
echo "Fallback: Visit https://gitea.letteka.com/letteka/YeetGeese/pulls/new/move_docs manually"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main command handling
|
||||||
|
if [[ "$1" == "" ]]; then
|
||||||
|
# No arguments - create PR from current branch to develop
|
||||||
|
create_pr "develop"
|
||||||
|
elif [[ "$1" == "help" ]]; then
|
||||||
|
echo "Gitea PR Helper - Commands:"
|
||||||
|
echo " [no args] Create PR from current branch to 'develop'"
|
||||||
|
echo " help Show this help message"
|
||||||
|
else
|
||||||
|
echo "Unknown command: $1"
|
||||||
|
echo "Usage: create-pr [target-branch]"
|
||||||
|
echo ""
|
||||||
|
echo "Examples:"
|
||||||
|
echo " create-pr # Create PR to develop branch"
|
||||||
|
echo " create-pr main # Create PR to main branch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Also support alias name
|
||||||
|
alias gitea-create-pr=create_pr
|
||||||
@@ -13,3 +13,7 @@ desktop.ini
|
|||||||
# Build output (keep out of src/)
|
# Build output (keep out of src/)
|
||||||
bin/
|
bin/
|
||||||
osu!/
|
osu!/
|
||||||
|
|
||||||
|
.env
|
||||||
|
.env.gitea
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"name": "make-pr",
|
||||||
|
"description": "Create pull requests using Gitea API with comprehensive change overview and testing strategies",
|
||||||
|
"agent_type": "pr-creator",
|
||||||
|
"capabilities": {
|
||||||
|
"generate-pr-overview": "Human-readable summary of all changes including files modified, new features, fixes, and refactoring",
|
||||||
|
"list-testing-strategies": "Suggest comprehensive testing approaches for each change (unit tests, integration tests, manual QA)",
|
||||||
|
"validate-changes": "Perform git diff analysis to ensure validation is ready before PR creation",
|
||||||
|
"format-pr-description": "Structure PR description with clear sections for context, changes, testing, and validation"
|
||||||
|
},
|
||||||
|
"when_to_use": [
|
||||||
|
"When you are ready to create a pull request from your current branch to develop",
|
||||||
|
"Before pushing code that requires peer review",
|
||||||
|
"When implementing features or fixes that need documentation in the PR",
|
||||||
|
"To ensure all changes are properly documented and validated before review"
|
||||||
|
],
|
||||||
|
"input_required": [
|
||||||
|
"Target branch (default: 'develop')",
|
||||||
|
"Optional custom PR title override",
|
||||||
|
"Optional specific testing requirements for the current change"
|
||||||
|
],
|
||||||
|
"prompt_template": "Generate a pull request description from branch '{current_branch}' to '{target_branch}'.\n\nThe PR should include:\n\n1. Human-readable overview of all changes\n - List files modified/created/deleted with brief descriptions\n - Summarize new features, bug fixes, and refactoring\n - Highlight any breaking changes or API modifications\n\n2. Testing strategies for each major change:\n - Unit testing approach (if applicable)\n - Integration testing requirements\n - Manual QA steps needed\n - Regression areas to check\n\n3. Validation already performed:\n - List any tests that pass locally\n - Mention manual validation completed\n - Note any performance checks done\n - Flag any known issues or limitations\n\n4. Clear context for reviewers:\n - What problem does this solve?\n - How does it relate to existing code?\n - Any migration notes needed?",
|
||||||
|
"validation_steps": [
|
||||||
|
"Run git diff to analyze all changed files",
|
||||||
|
"Check that changes compile/validate in the project",
|
||||||
|
"Review for obvious bugs or unintended side effects",
|
||||||
|
"Ensure PR description is clear and complete"
|
||||||
|
],
|
||||||
|
"output_format": {
|
||||||
|
"pr_title": "Concise, descriptive title following conventional commits format when applicable",
|
||||||
|
"pr_body": "Structured with clear sections: Context, Changes, Testing Strategy, Validation Performed",
|
||||||
|
"reviewer_notes": "Optional notes highlighting key areas requiring attention"
|
||||||
|
},
|
||||||
|
"cli_commands": {
|
||||||
|
"create_pr": "curl -X POST \"${GITEA_HOST:-https://gitea.letteka.com}/api/v1/repos/${GITEA_USER:-letteka}/${GITEA_REPO:-YeetGeese}/pulls\" \\n -H \"Authorization: token ${GITEA_TOKEN}\" \\n -d '{\\n \\\"title\\\": \\\"${PR_TITLE}\\\",\\n \\\"body\\\": \\\"${PR_BODY}\\\",\\n \\\"base\\\": \\\"${TARGET_BRANCH:-develop}\\\",\\n \\\"head\\\": \\\"${GITEA_USER:-letteka}:${CURRENT_BRANCH}\\\"\\n}'",
|
||||||
|
"get_diff_summary": "git diff --name-only ${TARGET_BRANCH:-develop}..HEAD 2>/dev/null | wc -l || echo \"0\"",
|
||||||
|
"validate_git_status": "git status --short && git log -1 --oneline --quiet"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user