Skip to content

dominiksipowicz/jira-2-pr

Repository files navigation

Ticket → PR

Ticket → PR is a Next.js app that turns a structured Jira-style ticket into a GitHub branch or pull request in one connected repository.

What it does

  • Authenticates users with Google via Auth.js.
  • Connects one GitHub repository per user.
  • Stores ticket details and creates a Codex run record.
  • Dispatches a GitHub Actions worker to execute Codex against the target repo.
  • Tracks run lifecycle (queued, running, completed, failed) and stores branch/PR outputs.

Architecture at a glance

  1. User creates a ticket from the app UI.
  2. App persists ticket + run metadata in Postgres via Prisma.
  3. App dispatches .github/workflows/ticket-to-pr-worker.yml.
  4. Worker checks out the target repo, writes AGENTS.md/PLAN.md, runs Codex, and pushes changes.
  5. Worker creates or reuses a PR and uploads run result metadata.

Required environment variables

  • DATABASE_URL
  • NEXTAUTH_URL
  • NEXTAUTH_SECRET
  • NEXT_PUBLIC_APP_URL
  • WORKER_APP_BASE_URL
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • GITHUB_CLIENT_ID
  • GITHUB_CLIENT_SECRET
  • GITHUB_TOKEN_ENCRYPTION_KEY
  • OPENAI_API_KEY
  • OPENAI_CODEX_MODEL
  • OPENAI_PROGRESS_MODEL (optional)
  • WORKER_GITHUB_TOKEN
  • WORKER_REPO_OWNER
  • WORKER_REPO_NAME
  • WORKER_SHARED_SECRET

Worker repository secrets

In the worker repo (dominiksipowicz/jira-2-pr):

  • OPENAI_API_KEY
  • WORKER_SHARED_SECRET

WORKER_SHARED_SECRET must exactly match the app environment variable.

Local development

pnpm install
cp .env.example .env.local # fill values
pnpm prisma:generate
pnpm db:push
pnpm dev

Open http://localhost:3000.

Validation commands

pnpm lint
pnpm test
pnpm build

Notes

  • This is intentionally scoped to one connected repository per user.
  • PLAN.md and AGENTS.md are generated in the target repo during worker execution.

Future roadmap

  • Ralph loop style iteration for repeated fix-and-verify passes.
  • Better Codex prompts and repo-specific prompt tuning.
  • Ticket attachments and file uploads passed into the run context.
  • Native Jira and Linear integrations instead of paste-only ticket input.
  • Support for multiple connected repositories per user.

About

jira-2-pr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors