Resolve "Implement cache schema"
Summary
Implemented the schema discussed in #76 (closed). Added model classes and repositories. The overview of the schema:
MR Table
- id,
- project_id,
- content: {
- author_id,
- state,
- created_at,
- updated_at,
- labels,
- approvals_before_merge
- comments: [{assignee_id , length of comment, created_at, deleted_at }]
Issue Table
- id,
- project_id,
- content: {
- state,
- assignee_id,
- created_at,
- updated_at,
- weight,
- time_stats : {time_estimate, total_time_spent},
- comments: [{assignee_id , length of comment, created_at, deleted_at }]
Contribution Table
- id
- author_id,
- project_id,
- updated_at,
- content: {
- # of commits,
- LOC: {
- # of lines added,
- # of lines deleted,
- # of lines modified,
- # of lines survived}
- epics: [epic id, # of comments made in the epic, # of issues done in that epic]}
Project_Table
- project_id,
- updated_after_issues,
- updated_before_issues,
- issues
- updated_after_mr,
- updated_before_mr,
- mrs
- updated_after_contribution,
- updated_before_contribution,
- contributions
- updated_after,
- updated_before,
- content: {
- languages: [name of language -> percentage]
- pipeline: {# passed, # failed, last_coverage}}
Group_Table
- group_id
- projects,
- updated_after,
- updated_before,
- members
- content:{
- hours of day: [
- 08-10 -> # of commits made,
- 10-17 -> # of commits made,
- 17-00 -> # of commits made,
- 00-08 -> # of commits made],
- epics : [epic id -> name of epic]}
How to review
Check if the data types used make sense and match what we want, also the schema discussed in #76 (closed).
Issues and tasks closed
Closes #87 (closed)
Edited by Ada Turgut