Skip to content

[Initiative] API-Driven Bare Repository Provisioning #111

@juliuskrah

Description

@juliuskrah

Summary

Implement API-driven bare repository provisioning so GitStore can create and initialise repositories without using a manual init script. Repository creation should be exposed through service APIs and default to bare repositories suitable for remote Git transport.

Scope

In Scope

  • Add a repository-create API flow that provisions a bare repository in gitstore-git-service.
  • Ensure the API path supports idempotency (create-if-not-exists semantics where appropriate).
  • Initialize required refs/default branch metadata for a newly created bare repo.
  • Return clear errors for invalid names, permission issues, and already-existing repositories.
  • Add integration tests covering successful create, duplicate create, and invalid input cases.
  • Document API-first bare repository bootstrap flow and deprecate manual script-first guidance.

Out of Scope

  • Namespace model changes (tracked in [Initiative] Namespaces #39).
  • Full repository management UI.
  • SSH key management and access policy changes.

Acceptance Criteria

  • A client can create a bare repository through API calls without running the init script.
  • New repositories are created in bare mode and are immediately usable by Git transport operations.
  • Duplicate creation requests are handled deterministically (clear error or idempotent success).
  • Integration tests validate repository create and bootstrap behaviour end-to-end.
  • Documentation includes API examples for bare repository creation.

Dependencies

Tracking

  • Milestone: TBD

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions