Skip to content

gitlab-analyzer/gitlabanalyzer

Repository files navigation


gitlabanalyzer logo

License Contributers Last Commit Issues

A web application for analyzing GitLab repositories.

Built for Simon Fraser University course CMPT 373.
Explore the docs »

View Demo · Report Bug · Request Feature

⚡️ Quick start

First of all, download and install Node.js. Version 14.7.0 LTS or higher is recommended.

Then, download and install Python 3. Version 3.6 or higher is recommended.

Clone directory:

$ git clone [email protected]:gitlab-analyzer/gitlabanalyzer.git

Frontend:

# Change directory:
$ cd gitlabanalyzer/client/

# Installation:
$ npm install

# Start client server:
$ npm start

Backend:

# Change directory:
$ cd gitlabanalyzer/server/

# Installation:
$ pip3 install

# Start backend server:
$ python3 app.py

Then navigate to http://localhost:6789/ on your browser.

🐳 Docker-way to quick start

Make sure you have installed docker and docker-compose on your computer

Clone directory:

$ git clone [email protected]:gitlab-analyzer/gitlabanalyzer.git

Run:

# Change directory:
$ cd gitlabanalyzer/

# Run:
$ ./start.sh  

# Or if you need sudo previleges:
$ sudo bash ./start.sh

Then navigate to http://localhost:6789/ on your browser.

You might need to wait a couple minutes for everything in docker to be loaded.

Demo (Iteration 3)

👉 Try it here.

Features

Iteration 1:

  • Token based authentication
  • Repository listings
  • Float bar
  • Overview page
  • MR & Commits page
  • Issues & Reviews
  • Config

Iteration 2:

  • Score Calculation 💯
  • Merge Requests & Commit Ignoring
  • Refactored Overview graphs
  • Issues & Reviews
  • Initial Config & App Config
  • Search Repo
  • REST API v2 Finished! 🚀
  • Batch Processing (UI Only)
  • Code Diff Page
  • Export Reports

Iteration 3:

Directory Structure

  • server (Where the backend code is stored, python flask is used as the backend server)
    • interface (Contains all the interface files)
    • manager (Contains all the manager files)
    • model (Contains our data class for commits, mergre requests etc.)
    • test (Contains all the test and unittest files)
    • app.py (Main server file)
    • API_example_response (Stores all the API routes and their example response body)
  • client (Where the front-end client code is stored, reactjs is used)
    • public
    • src
      • components
      • context
      • pages
      • public
      • various files
  • various docker files for building and deploying

Links

Credits

This software uses the following open source packages:

License

AGPL v3.0