Welcome to the GitHub Community! This repository serves as a central hub for community-driven projects within the Ministry of Justice GitHub space.
The GitHub Community is a group of passionate engineers dedicated to building great services. It is run by volunteers and promotes an engineer-first approach, ensuring that projects remain in the hands of those who actively develop them. The community fosters innovation and collaboration by supporting multiple projects within the Ministry of Justice GitHub ecosystem.
The community currently provides the following projects and services:
Project Name | Description |
---|---|
Repository Standards | Improving code quality and security by centralizing knowledge and best practices for GitHub repositories. |
Shared GitHub Actions | Providing reusable GitHub Actions to reduce technical debt, improve maintainability, and enhance quality. |
... | More projects to be added... |
The github-community repository serves as the primary hub and a single pane of glass for all things GitHub Community. To help engineers quickly build and deploy their projects, this repository hosts a modular monolithic Flask application. Engineers can optionally choose to host their ideas here, minimizing maintenance burdens while gaining quick access to shared components.
- Single Flask Application: A shared core framework hosting multiple projects.
- Single Set of Dependencies: Simplified dependency management.
- Shared Database (Amazon RDS - PostgreSQL): Minimal maintenance with easy access to data persistence.
- Shared Authentication: Quickly secure projects with a common authentication layer.
- Modular Code Structure: Projects are self-contained within the monolith.
/github-community/
βββ app/ # Core Flask application
β βββ projects/ # Individual project modules
β βββ repository_standards/ # Repository standards module
β βββ shared_github_actions/ # GitHub Actions module
β βββ ...
β βββ shared/ # Shared modules
β βββ config/ # Shared configuration settings
β βββ middleware/ # Shared middleware functions
β βββ routes/ # Shared routes
β βββ database.py # Shared database connection
β βββ ...
βββ tests/ # Automated tests
βββ ...
This repository provides a set of services accessible at github-community.service.justice.gov.uk, including:
- β Repository Standards β Automated reports on repository health and best practices.
- Simplified Maintenance β One codebase to manage.
- Shared Components β Reduces duplication of common functionality.
- Easier Collaboration β Community contributions are streamlined.
- Scalable & Extensible β New projects can be added with minimal setup.
- Coupling β Projects share infrastructure and dependencies.
- Deployment Coordination β Updates affect all projects simultaneously.
- Performance Considerations β Shared resources must be optimized.
- Python 3+
- Pipenv
- Docker (optional for local database setup)
# Clone the repository
git clone https://github.com/ministryofjustice/github-community.git
cd github-community
# Install dependencies
pipenv install --dev
# Set up the database
docker compose -f docker-compose.yaml up --build
# Run the application
pipenv run app
This project is licensed under the MIT License. See the LICENSE file for details.