Organizations
JJHub supports a full organization model with teams and role-based permissions, matching our standard organization system.
Organization Model
- Organizations own repositories, just like users do
- Teams are groups of users within an org, each with specific permissions
- Roles control what team members can do: read, write, or admin
Creating an Organization
Organizations are created via the CLI:
jjhub org create my-org --description "My organization"
Teams
Teams provide granular access control within an organization. Each team has:
- A name and description
- A permission level (read, write, admin)
- A set of repositories it has access to
- A set of member users
Managing Teams
# List teams in an org
jjhub api /orgs/my-org/teams
# Create a team
jjhub api -X POST /orgs/my-org/teams \
-f name=backend \
-f permission=write \
-f description="Backend team"
# Add a member
jjhub api -X PUT /teams/<team-id>/members/username
# Add a repository
jjhub api -X PUT /teams/<team-id>/repos/my-org/my-repo
Permission Levels
Our permissions systems are generally not stable and are liable to have breaking changes as we find the correct abstraction for permissioning agentic workflows.
| Level | Capabilities |
|---|
| Read | Clone repos, view issues and LRs |
| Write | Push to repos, create issues/LRs, manage labels |
| Admin | Manage repo settings, teams, webhooks, secrets |
Repository Ownership
Repositories can be owned by either a user or an organization:
# Create a repo under an org
jjhub repo create my-org/new-project --description "Org repository"
Org-owned repos inherit team-based access control. Direct collaborator access is also supported for individual users.