GitHub Action Rerunner
μ΄λ¬΄ @2chanhaeng@hackers.pub
GitHub Action Rerunner
A web application that delegates permission to team members to directly rerun failed GitHub Actions.
π― Why was it created?
When GitHub Actions fail, you need Write permission for the repository to rerun them. However, for security reasons, it's difficult to give Write permission to all team members.
GitHub Action Rerunner solves this problem. Once the repository owner registers a token, team members can rerun failed Actions for PRs assigned to them, allowing them to restart CI/CD without direct repository permissions!
β¨ Key Features
Repository Owner
- π¦ Register personal and organization repositories
- π Register GitHub Personal Access Tokens (stored encrypted)
- π Create shareable unique links
- π View and rerun all failed PRs
- βοΈ Manage repository settings
Team Members (Assignees)
- π View list of PRs assigned to them
- π One-click rerun of failed GitHub Actions
- π Real-time workflow status monitoring
Account Management
- π GitHub OAuth login
- π₯ Support for multiple GitHub account connections
- π Easy switching between accounts
π Tech Stack
- Frontend: Next.js 16 (App Router), React 19, Tailwind CSS 4
- Backend: Next.js API Routes
- Authentication: NextAuth.js v5 (GitHub OAuth)
- Database: PostgreSQL + Prisma ORM
- GitHub API: Octokit
π Deploy It Yourself
The project is already deployed, but since it handles sensitive tokens, you may want to deploy it yourself. Follow the guide below:
1. Repository pull
Pull the repository.
2. Environment Variable Setup
Create a .env file and set the following values:
# DB (PostgreSQL)
DATABASE_URL="postgresql://..."
DIRECT_URL="postgresql://..."
# NextAuth.js
AUTH_SECRET="use `npx auth secret`"
AUTH_GITHUB_ID="your-github-oauth-app-id"
AUTH_GITHUB_SECRET="your-github-oauth-app-secret"
# Token Encryption (32 characters)
ENCRYPTION_KEY="your-32-character-encryption-key"
3. Create GitHub OAuth App
- Create an OAuth App in GitHub Developer Settings
- Authorization callback URL:
http://localhost:3000/api/auth/callback/github - Set the Client ID and Client Secret in environment variables
4. Run Development Server
# Install dependencies
pnpm install
# Generate Prisma client
npx prisma generate
# Database migration
npx prisma migrate dev
# Run development server
pnpm dev
Check it at http://localhost:3000.
π How to Use
Register Repository (Owner)
- Login with GitHub
- Dashboard β Register repository
- Select repository to register
- Register Personal Access Token in settings page
- Token needs
repoandactionspermissions
- Token needs
- Share the generated link with team members
Rerun Actions (Team Members)
- Access the shared link
- Login with GitHub
- Check the list of PRs assigned to you
- Click the "Rerun" button next to failed workflows
π Security
- Personal Access Tokens are stored encrypted with AES-256-GCM.
- Team members can only rerun Actions for PRs assigned to them.
- All API requests go through session-based authentication.