Skip to content

SoftwareSystemsLaboratory/prime-pipeline

Repository files navigation

PRIME Pipeline

DOI Release Project

An example pipeline that computes metrics of a repository

Table of Contents

About

The Software Systems Laboratory (SSL) PRIME Pipeline Project is an example pipeline that computes metrics of a repository.

The pipeline only calculates metrics for the HEAD branch of a repository.

Licensing

This project is licensed under the BSD-3-Clause. See the LICENSE for more information.

Tooling

To maximize the utility of this project the following software packages are required:

Operating System

All tools developed for the greater SSL Metrics project target Mac OS and Linux. SSL Metrics software is not supported or recommended to run on Windows but can be modified to do so at your own risk.

It is recomendded to run on Mac OS or Linux. However, if you are on a Windows machine, you can use WSL to run this software as well.

Shell Software

Required Shell Software

  • git
  • parallel
  • wget
  • rclone
  • tmux
  • python3.10

Python Software

All listed Python software assumes that you have downloaded and installed Python 3.10 or greater.

  • clime-metrics

You can install the Python software with this one-liner:

pip install --upgrade pip clime-metrics or ./setup.bash

How To Use

Setting up the Pipeline

Run the following one liner to setup the pipeline:

  • wget -qO- https://raw.githubusercontent.com/SoftwareSystemsLaboratory/clime-pipeline/main/setup.bash | bash

Executing the Pipeline

pipeline.bash contains the code to start the pipeline. It takes a GitHub Personal Access Token and a file containing a list of Github Repository URLs as positional arguements.

For an example GitHub Repository URL file, see githubRepositories.txt.

  • ./pipeline.bash $GH_TOKEN githubRepositories.txt

Where $GH_TOKEN is a GitHub Personal Access Token or shell variable referencing it.

githubRepositories.txt can be replaced with any file containing GitHub Repository URLs.

NOTE: The name of this text file will be used to create a folder containing all of the repositories analyzed and their analysis files.

Google Drive Upload

This pipeline is configured to upload results to a Google Drive folder via rclone. If you don't want to do this, comment out or change the last lines in the runner.bash file.