Skip to main content

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.
LevelCapabilities
ReadClone repos, view issues and LRs
WritePush to repos, create issues/LRs, manage labels
AdminManage 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.