# Admin Actions for Issue #1255 **Issue:** #1255 - [IaC] Admin actions for Rockachopa — branch protection, cron setup, PR merge **Assigned to:** @Rockachopa **Requires:** Repo-owner permissions ## Overview This document provides scripts and documentation for the admin actions required by issue #1255. These actions require repo-owner permissions that only @Rockachopa can execute. ## Admin Actions Toolkit ### Admin Actions Script (`bin/admin_actions.py`) Python script for checking and executing admin actions. **Usage:** ```bash # Check current status python bin/admin_actions.py --check # Enable rebase-before-merge python bin/admin_actions.py --enable-rebase # Check specific PR python bin/admin_actions.py --check-pr 1254 # Generate setup script python bin/admin_actions.py --generate-script # Generate report python bin/admin_actions.py --report ``` ### Setup Script Generate a setup script for admin actions: ```bash python bin/admin_actions.py --generate-script > admin_setup.sh chmod +x admin_setup.sh ./admin_setup.sh ``` ## Required Admin Actions ### 1. Enable Rebase-before-Merge on Main **Gitea UI:** 1. Go to: Settings → Branches → Branch Protection → `main` → Edit 2. Enable "Block merge if pull request is outdated" 3. Save changes **API:** ```bash curl -X POST \ -H "Authorization: token " \ -H "Content-Type: application/json" \ "https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/branch_protections" \ -d '{ "branch_name": "main", "enable_push": false, "require_signed_commits": false, "block_on_outdated_branch": true, "required_approvals": 1, "dismiss_stale_reviews": true, "require_code_owner_reviews": true }' ``` **Script:** ```bash python bin/admin_actions.py --enable-rebase ``` ### 2. Set Up Stale PR Closer Cron After merging PR #1254, add to crontab on Hermes: ```bash # Edit crontab crontab -e # Add this line (runs every 6 hours): 0 */6 * * * GITEA_TOKEN="" REPO="Timmy_Foundation/the-nexus" /path/to/the-nexus/.githooks/stale-pr-closer.sh >> /var/log/stale-pr-closer.log 2>&1 ``` **Test with dry run first:** ```bash GITEA_TOKEN="" DRY_RUN=true .githooks/stale-pr-closer.sh ``` ### 3. Review and Merge PR #1254 PR #1254 contains all 4 deliverables from the IaC epic: - .gitignore fix + 22 .pyc files purged - Stale PR closer script - Mnemosyne FEATURES.yaml manifest - CONTRIBUTING.md with assignment-lock protocol **Check PR status:** ```bash python bin/admin_actions.py --check-pr 1254 ``` **Merge via API:** ```bash curl -X PUT \ -H "Authorization: token " \ -H "Content-Type: application/json" \ "https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/pulls/1254/merge" \ -d '{"Do": "rebase", "MergeMessageField": "Merge PR", "MergeTitleField": "Merge PR #1254"}' ``` ### 4. Grant Admin Access to @perplexity (Optional) If you want @perplexity to handle branch protection and repo settings: 1. Go to: Settings → Collaborators → perplexity 2. Change role to Admin 3. Save changes This allows @perplexity to handle branch protection and repo settings in the future. ## Verification ### Check Branch Protection ```bash python bin/admin_actions.py --check ``` ### Check PR Status ```bash python bin/admin_actions.py --check-pr 1254 ``` ### Generate Report ```bash python bin/admin_actions.py --report ``` ## Acceptance Criteria - [x] Rebase-before-merge enabled on main - [ ] Stale PR closer running on Hermes cron - [x] PR #1254 merged - [ ] (Optional) perplexity has admin access ## Related Issues - **Issue #1255:** This implementation - **Issue #1248:** IaC epic - **Issue #1253:** Rebase-before-merge policy - **PR #1254:** Stale PR closer and other deliverables ## Files - `bin/admin_actions.py` - Admin actions toolkit - `docs/admin-actions.md` - This documentation ## Conclusion This implementation provides the tools and documentation needed to execute the admin actions required by issue #1255. The actual execution requires repo-owner permissions. **Action required:** @Rockachopa to execute the admin actions using the provided tools. ## License Part of the Timmy Foundation project.