GitBucket.WTF Features

โœ… Implemented

Organization Management

  • Create organizations
  • Configure S3/Storj credentials per organization
  • Organization settings page

Repository Management

  • Create repositories under organizations
  • Repository metadata storage
  • Git repository initialization in S3

Member Management

  • Add members to organizations
  • Assign roles (Owner, Maintainer, Contributor)
  • Update member roles
  • Remove members

Git Integration

  • Shared GitEngine (in @gitbucket/storage) used by both the web app and the CLI
  • Pluggable storage adapters: S3-compatible, Vercel Blob, local filesystem
  • Git HTTP Smart Protocol endpoints (server-side, for git clone/push/pull over HTTPS)
  • gib CLI for direct-to-bucket workflows (see CLI.md)
  • Git objects stored in S3 following the Git object model
  • Pack-file data plane (download supported by CLI clone/pull; upload planned)

UI Components

  • Clean, modern design system
  • Reusable components (Button, Input, Card)
  • Organization settings page
  • Dashboard page

๐Ÿšง In Progress

Git Operations

  • Pack-on-push for the CLI (data plane is in place; needs server-side pack-aware reads first)
  • Branch management UI (refs are stored; UI exposure pending)

Authentication

  • User authentication (JWT/sessions)
  • Permission checks

๐Ÿ“‹ Planned

Repository Features

  • File browsing by branch/commit
  • Commit history
  • Branch list and management
  • Diff viewing

Pull Requests

  • Create PRs
  • PR detail pages
  • Diff view in PRs
  • PR comments
  • PR merge

User Interface

  • Repository overview pages
  • Organization pages with repo list
  • Member management UI
  • Repository creation UI
  • Settings pages

๐ŸŽฏ Architecture

  • Storage: Pluggable via @gitbucket/storage's Storage interface (S3-compatible, Vercel Blob, local FS) โ€” see ARCHITECTURE.md
  • Two clients, one engine: the Next.js HTTP Smart Protocol routes and the gib CLI both delegate to a single GitEngine
  • Data Model: Entity-based storage using @decoperations/s3worm; git objects/refs go through GitEngine