Skip to content

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

Merge request reports

Loading