Home

madison / open-git

public
Code Branches Pull requestsIssuesInsights Campfire Docs
main
Home Code PRsIssues

[feat] Add assignments to issues and PRs

open
#44 opened by madisonfeat/user-assignment→main
Conversation7 Commits6
Files changed
24
madisonopened this pull requestAuthor· last month

Summary

Adds user assignment for issues and pull requests, backed by new RBAC capabilities and database tables. Maintainers with the right permissions can assign/unassign users from the issue and PR detail sidebars via a searchable combobox picker.

Also splits PR interaction into finer-grained capabilities (repo.pull.comment vs repo.pull.review) and introduces a triage preset for issue/PR assignment workflows.

Changes

Database

  • New tables: issue_assignees, pull_request_assignees
  • Unique constraint per item/user; tracks assigned_by_profile_id
  • Migration: 0030_gifted_grim_reaper.sql (follows main's 0029_happy_kronos gitty pets migration)

RBAC

New capabilities:

  • repo.issue.assign, repo.issue.label, repo.issue.prioritize
  • repo.pull.comment, repo.pull.assign, repo.pull.request_review
  • repo.pull.review renamed to "Submit trusted reviews" (distinct from commenting)
  • New triage preset for assignment and issue/PR management without merge/write access
  • Public baseline contributors can create/comment but cannot assign

UI

  • RepositoryAssigneesPanel — sidebar section on issue and PR detail pages
  • RepositoryAssigneePicker — combobox with grouped suggestions:
    • Repository members
    • Author
    • Commenters
    • Other users (searchable across onboarded profiles)
  • Sticky sidebar styling preserved from main's layout refactor

Server actions

  • setIssueAssigneesFromForm — gated on repo.issue.assign
  • setPullRequestAssigneesFromForm — gated on repo.pull.assign
  • Candidate validation ensures only assignable profiles can be added

Docs

  • Updated docs/orgs-rbac.md with schema, capability matrix, and assignment behavior

Madison added 5 commits · last month

View commits
  • feat: update to include permissions around issues and PRseaef090
  • Merge remote-tracking branch 'origin/main' into feat/user-assignment21efffc
  • update to selection6343948
  • Merge origin/main into feat/user-assignment2d28eab
  • Update back to localhost:3001 port over 30006f954ec
Open Git PR AutopilotBotpushed 1 commit· 3 weeks ago
  • Fix PR Autopilot findings89c5305
View commits
Open Git PR AutopilotBotran on this pull request· 3 weeks ago

No additional fix is needed. The exact CI web build command succeeds on the current branch, including TypeScript checking and page generation. The earlier failure appears to have been resolved by the latest commit; the working tree is clean.

No file changes were produced.

Triggered by check.failed

Automated run · @autopilot
All checks passed· 3 weeks ago· 7 checks
  • Apply migrations to a fresh PostgresPassed
  • Build webPassed
  • LintPassed
  • Schema drift (db:generate is up to date)Passed
  • TestsPassed
  • TypecheckPassed
  • drizzle-kit check (snapshot/journal consistency)Passed
This branch has conflicts that must be resolved
Resolve the conflicts manually, then push the branch to continue.
0 approving reviews
None yet
Checks
7/7 successful checks
Fast-forward
Source must contain the target branch tip
main ← feat/user-assignment

You need push access to the source branch to update it.

Sign in to comment.

Merge readiness

Ahead6
Behind159
Fast-forwardBlocked
ConflictsYes

This branch has conflicts with the base branch that must be resolved.

Checks

Apply migrations to a fresh PostgresPassedBuild webPassedLintPassedSchema drift (db:generate is up to date)PassedTestsPassedTypecheckPasseddrizzle-kit check (snapshot/journal consistency)Passed

Autopilot

Debug

Reviews

Approved0
ReviewersNone yet

Running Autopilot requires review access on this PR and push access to the source branch.

Latest runsuccess

No additional fix is needed. The exact CI web build command succeeds on the current branch, including TypeScript checking and page generation. The earlier failure appears to have been resolved by the latest commit; the working tree is clean. No file changes were produced.