CSC/ECE 517 Fall 2023 - G2350. Add GitLab support for using GraphQL to query user metrics 1: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
m (Sections added)
m (Relevant links added)
Line 55: Line 55:


== Relevant Links ==
== Relevant Links ==
* '''Github Repository:''' https://github.com/greyfiles/expertiza
* '''Github Repository:''' https://github.ncsu.edu/jcui9/G2370
* '''Pull Request:''' https://github.com/expertiza/expertiza/pull/2460
* '''Pull Request 1:''' https://github.ncsu.edu/jcui9/G2370/pull/3
* '''VCL Server:''' http://152.7.98.115:8080/
* '''Pull Request 2:''' https://github.ncsu.edu/jcui9/G2370/pull/4
* ''' Gitlab Graph QL Docs:''' https://docs.gitlab.com/ee/api/graphql/




== Team ==
== Team Mentor ==
=== Mentor ===
* Jialin Cui
* Jialin Cui



Revision as of 01:24, 16 November 2023

This wiki page is for information regarding the changes made for the G2350. Add GitLab support for using GraphQL to query user metrics 1 OSS assignment for Fall 2023, CSC/ECE 517.

Overview of Gitlab

Expertiza is an open source software written using Ruby on Rails which functions as a learning management software system. It has man different functions and abilities including the ability to create assignments, quizzes, assignment groups and topics, and also a complete mechanism for providing peer reviews and feedback for other groups and other teammates. Part of its functionality is a system for user authentication with different user roles and permissions that determine how each user interacts with the content. The auth_controller.rb and password_retrieval_controller.rb which are the files primarily addressed in this project are both critical controllers in providing this functionality.

Introduction

This project is dedicated to retrieving GitLab-specific data associated with a user by their username. Our objective was to fetch a comprehensive array of user-related information, including:

  • User commit comments
  • User issue comments
  • User gist comments
  • User repository discussion comments
  • User profile stats
  • User contribution collection

Using the powerful GraphQL APIs provided by GitLab, we aimed to streamline the extraction process and obtain a holistic view of a user's activity and contributions within the GitLab ecosystem.

About Controller

Problem Statement

  • Go through the github queries present in the repo
  • Execute the demo.py file to check how the code is executing for the github queries
  • Go through the gitlab documentation and write the relevant gitlab queries for the queries available on github.
  • Indicate the gitlab queries that are not available and what gitlab query has been obtained instead.
  • Ensure the code is not breaking.

Design Pattern

File(s) Modified / Added

1. commit_comments.py
2. discussion_comments.py
3. issue_comments.py
4. snippet_comments.py
5. user_login.py
6. user_profile_stats.py
7. user_contribution_collections.py

Solutions/Details of Changes Made

1. Added demo_gitlab.py file.

Testing

Everything in the testing segment was beyond the scope of our work. However, we wanted to validate our code through RSpec testing before merging into the main Expertiza branch. In the second submission phase, we plan to further enhance the testing suite of the auth_controller.rb and password_retrieval_controller.rb through factories and fixtures.

Test Plan

Relevant Links


Team Mentor

  • Jialin Cui

Team Members

  • Saikrishna Rajaraman (srajara4)
  • Siddharth Anand (sanand8)
  • Yash Chandrani (ychandr)