[go: up one dir, main page]

Skip to content

Repo Per Project

If we want to base our project/issue/mr storage on repos instead of databases it would be tough. I/O is slow, so it would be near impossible to base our entire project level data on a git repo.

However, we could give the illusion of a git repo. To start, this repo would be read only, but in the future it could partially writable with permissions in place.

  • Each project would have it's own repo URL separate from where the code is stored.
  • When cloned, it would deliver a git repo (which theory could be generated on the fly).
    • Directory structure could be something like:
      • Project
        • my_project.yml
        • Issues/
          • issue_188/
            • issue_meta.yml
            • issue_comments.yml
          • issue_189/
        • Merge requests
        • Wiki
        • Labels

For the my_project.yml (which we could give JSON instead) it could contain metadata about the project:

---
settings:
  general:
    project_name: my_project
    project_description: a good project
    tags:
    - neat
    - happy
    - fun
    - project management
  more_settings:
    some_setting: true

comments.yml

---
comments:
- author_id: '24601'
  plain: you did great!
  markdown: you did **great**!
- author_id: '24602'
  plain: I agree with @jeff
  markdown: I agree with [@jeff](/jeff)

cc @JobV @stanhu