chaoss / chaoss/grimoirelab

Define a service to manage projects hierarchy

Open
#304 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
625
Forks
231
PR merge metrics
No merged PRs in 30d

Description

## 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](https://github.com/chaoss/grimoirelab-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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.