GatorCogitate / cogitate_tool

Tool to analyze contributions when working in a team.
5 stars 13 forks source link

Cogitate Logo Build Status codecov made-with-python

About GatorCogitate

Cogitate is a free and open source tool written in Python. It is designed to evaluate the level of contributions for members of a GitHub repository. GatorCogitate generates a score for members based on a variety of metrics including:

These metrics are combined into an overall score for the user.

Note: This tool is alpha software. Please contact us if you intend to run it in production.

Installing GatorCogitate

1. Clone the GatorCogitate source code onto your machine.

With HTTPS:

git clone https://github.com/GatorCogitate/cogitate_tool.git

Or with SSH:

git clone git@github.com:GatorCogitate/cogitate_tool.git

2. Install Pipenv (Recommended) Documentation for installing pipenv can be found Here. After pulling the repo, use pipenv shell in cogitate_tool/ to enter the virtual environment. Use exit to exit. Under the virtual environment, use pipenv install <package_name> --dev to install new packages for development. Otherwise use pipenv install --dev to install all dependencies.

Here is a good tutorial on how to use pipenv.

Alternatively, all dependencies will need to be installed locally with the commands:

python3 -m pip install --upgrade pip
python3 -m pip install -e

Running GatorCogitate

GatorCogitate uses argparse which allows a user to make arguments during program execution. The required arguments for the tool are as follows:

Run the command pipenv run python src/cogitate.py -t [GitHub Token] -r [Path] in the root directory. Check out cogitate.py to see additional arguments that can be used..

Note: Any users that do not wish to develop the tool can stop reading here.

Development Info

2.1 How To Install Packages

When under development, always install the virtual environment first by using pipenv install --dev, then run the developing program by using pipenv run python program_name.

2.2 How to setup scripts

The purpose of script is to automate the running or testing process. To make the scripts take effect, add the following code to the Pipfile:

[scripts]
command_name = “./scripts/script_name.sh”

Here the command_name is the command you want to use when running the project. For example, if the command_name is cogitate, the we can use pipenv run cogitate.

3. Command Line Interface

The homepage for argparse.

The available attributes can be found at their homepage.

CLI Parameters

Token

The purpose of a token in this context provides an alternate passwords that you can use to authenticate. The personal access tokens with Git allows you to authenticate with a token in place of your password. This is vital for our tool because it allows the user to be used for HTTPS Git operations.

The following will demonstrate step by step the process to generate a token in order to use the tool:

  1. Click your profile icon on GitHub and then click Settings.

  2. On the sidebar, click the Developer settings and then Personal access tokens.

  3. Click Generate new token.

  4. Add a token description and click Generate token.

  5. Save the token for future use.

Do note that for security reasons, you will not be able to see the token again once logged off.

Link

The link is the URL of the targeted repository in GitHub. This can be found at the GitHub website.

Repo

The repo is the targeted repository name. It includes the root part and the name part. The root part is the username or organization name. The name part is the actual name of the repository. In our case, it would be GatorCogitate/cogitate_tool

Run Merge

Determines if the process of merging duplicate Github usernames will be run, based on the user's input.

Below

Determines lower weight.

Above

Determines higher weight.

Within

Determines value within weight.

State

State of the Issue: open, closed, or all.

Web

Determines if the detailed results of the tool's calculations will be shown in the web interface, based on the user's input.

Metric

Invokes calculation of team or individual metrics. If not specified, both are run.

4. PyDriller

The homepage and documentation for PyDriller.

The available attributes can be found at their homepage.

Limitations of GatorCogitate

GatorCogitate is a tool that allows a user to determine how well both individuals and teams are contributing to a GitHub repository. This tool offers a lot of great features, but currently has some limitations that the developers would like users to be aware of.

Future Development

The developers would like to develop even more features to our tool in the future. These ideas include:

Contacting the Developers

IssueTracker

The role of an issue is to starting a conversation or a discussion. Issues are located within the GitHub Issue tracker, which is where developers discuss changes or problems related to the project. If you see an open issue that you want to tackle, quickly comment on the issue to let others know you’re working on a solution. Therefore, people are less likely to duplicate your work.

An issue is usually opened under the following circumstances:

Tips for effective communication:

Pull Request Process

A pull request is created by a contributor to propose and collaborate on given updates to a repository. Once a branch or issue is created and the changes are committed, the creation of a pull request is needed, in order to receive feedback on the proposed changes.

Note: Anyone with push access to the repository can complete the merge. Ultimately, a pull request is utilized to submit a working solution.