grimoirelab
grimoirelab copied to clipboard
Define a service to manage projects hierarchy
Rationale
Currently, GrimoireLab uses the projects.json
file to define the structure of the projects to analyze. This file stores a JSON structure that contains a list of projects and for each project, its list of repositories.
Although this file works fine, it has a lot of problems: for end users it is hard to edit and it only has one level so a project with multiple subprojects it's not allowed.
Some years ago we started with the idea of store this information in a database and created a website with simple forms so users would be able to add and remove projects and repositories. That's how bestiary was born. For many reasons, we never fully integrate it but it's the moment to do it.
The goal is to create a service based in bestiary using the same model we defined for sortinghat. It will be a web service that implements GraphQL specification.
The next list shows the tasks needed to archive this goal:
Tasks
- [x] Define a basic structure in Django for bestiary
- [x] Implement authentication methods as in SortingHat
- [x] Implement transactions log as in SortingHat
- [ ] Define the database model (see #83)
- [ ] Develop API methods to add/remove projects
- [ ] Add GraphQL queries to list projects
- [ ] Support GraphQL mutations to add/remove projects
- [ ] Develop API methods to add/remove repositories
- [ ] Add GraphQL queries to list repositories
- [ ] Support GraphQL mutations to add/remove repositories
- [ ] Develop API methods to change repositories configuration
- [ ] Develop API methods to change projects hierarchy
- [ ] Implement UI interface
Hey @sduenas, I'm looking to participate in GSoC this year and I'd like to work on this issue if it is available!
From what I could gather, the database model has already been defined and authentication using jwt is done, so that leaves adding api endpoints and graphQL queries, which I'd like to try implementing, so could you tell me if I could work on this (and where to pick it up from)?
Thanks, Aditya.
I'm in love ❤️ with this idea. What's the current status?