The "Mildly Friendly Git Display" team project by LB01 - Team 1B.
MFGD is a Git viewer to inspect and publicise Git repositories. It implements web-based user authentication and permissions to supports private repositories for repository access management. MFGD must be bootstrapped manually by creating an initial administrator (see installation instructions below). MFGD was implemented using Python and Django with minimal dependencies.
WARNING: Support for Windows is a best-effort basis which may present stability and deployment issues; MFGD was designed for deployment on a Unix-like environment (MFGD was developed under Linux).
Python 3.7+ and Git must be installed and in your PATH (it is recommended that Windows users install Git BASH to support unit testing).
Install using the below command (regular git clone
will not clone submodule dependencies).
$ git clone --recurse-submodule https://github.com/kukrimate/mfgd
If the repository was cloned without retrieving submodules then run the below command.
$ git submodule update --init mpygit
Move into the cloned repository then install Python dependencies.
$ python3 -m pip install -r requirements.txt --user
MFGD must be bootstrapped to create the initial administrator account. If you are deploying MFGD for yourself then run.
$ python3 bootstrap.py
Otherwise, if you are deploying MFGD for demonstration purposes then setup placeholder data (this will clone external repositories).
$ python3 population_script.py
After installation and bootstrapping then run the below and browse to http://localhost:8000
.
$ python3 manage.py runserver
(see python3 manage.py --help
to specify address and port and other configurable options).
Warning: Unit tests only work under Unix-like environments (including Git BASH) with the previously mentioned prerequisites.
Execute
$ ./test.sh
to setup and execute the unit tests.
jQuery is used for the repository management panel which is requested from the Google CDN. Git repositories are interacted with on the local filesystem using mpygit (a module developed internally). Pygments is used for syntax highlighting. Django is the overarching web framework for implementing MFGD.