A comprehensive GitHub repository template that provides the essential files and structure needed for any project, regardless of programming language. This template includes standard community health files, GitHub issue templates, and pull request templates to help you get started quickly with best practices for open source projects.
- Language Agnostic: Works for any programming language or project type
- Community Health Files: Includes standard files for project governance
- GitHub Integration: Pre-configured issue and pull request templates
- Development Tools: Pre-configured development workflow tools including lefthook, mise, and cocogitto
- Customizable: Easy to adapt to your specific project needs
- README.md: This file - provides information about the project and how to use it
- LICENSE: Apache License 2.0 - defines the terms under which the project can be used
- CODE_OF_CONDUCT.md: Defines standards for how to engage in the project community
- SECURITY.md: Outlines security procedures and how to report vulnerabilities
- .lefthook.yml: Configuration for lefthook Git hooks manager
- mise.toml / .tool-versions: Configuration for the mise tool version manager
- mise.toml / .tool-versions: Pin and manage tool versions with mise
- Issue Templates:
bug_report.yml: Structured template for reporting bugsfeature_request.yml: Structured template for suggesting new featuresdocumentation_improvement.yml: Structured template for documentation improvementsISSUE_TEMPLATE.md: General issue template for other types of issues
- Pull Request Template:
PULL_REQUEST_TEMPLATE.md: Template for submitting changes to the project
This template includes several pre-configured development tools to improve code quality and streamline workflows:
- Purpose: Tool version manager that ensures consistent tool versions across different environments
- Configuration:
mise.tomland/or.tool-versionsspecify versions for tools like cocogitto and lefthook - Benefits: Eliminates "works on my machine" issues by pinning exact tool versions
- Purpose: Git hooks manager that runs commands automatically during Git operations
- Configuration:
.lefthook.ymlsets up hooks to run cocogitto verification on commit messages and checks before pushing - Benefits: Enforces code quality standards and conventional commit formats automatically
- Purpose: Conventional commits tool that enforces commit message standards and generates changelogs
- Configuration: Managed via mise and integrated with lefthook hooks
- Benefits: Ensures consistent commit history and enables automated semantic versioning and changelog generation
These tools work together to create a robust development environment with automated quality checks, consistent tooling, and standardized commit practices.
This template includes development tools that can be installed to enhance your development workflow using mise.
Choose one of the following methods (see https://mise.jdx.dev/ for more options):
curl https://mise.run | shAfter installation, ensure mise is on your PATH.
From the project root, run:
mise installlefthook install-
Create a New Repository:
- Click the "Use this template" button at the top of the repository
- Or clone/download this repository and initialize a new Git repository
-
Customize the Files:
- Update this README.md with information about your project
- Modify the LICENSE file if you want to use a different license
- Update the CODE_OF_CONDUCT.md and SECURITY.md with your contact information
- Adjust the issue and pull request templates to match your project's needs
-
Add Your Project Files:
- Add your source code, documentation, and other project-specific files
- Create additional directories as needed for your project structure
-
Publish Your Repository:
- Push your changes to GitHub
- Enable GitHub Pages if you want to create a project website
- Replace this content with information about your project
- Include sections such as:
- Project description and purpose
- Installation instructions
- Usage examples
- API documentation
- Contributing guidelines
- License information
- The template includes the Apache License 2.0
- To use a different license, replace this file with your preferred license
- Update the copyright notice with your name/organization and year
- Update the contact information in the "Enforcement" section
- Customize any specific rules or expectations for your community
- Update the "Reporting a Vulnerability" section with your contact information
- Modify the "Supported Versions" table to match your project's version policy
- Update the "Security Contacts" section with your contact details
- Modify the fields, labels, and descriptions to match your project's needs
- Add or remove templates based on the types of contributions you expect
- Templates follow the Conventional Commits format
- Adjust the checklist items to match your project's requirements
- Modify the types of changes to reflect your project's structure
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes using Conventional Commits format:
- For new features:
git commit -m 'feat: add some amazing feature' - For bug fixes:
git commit -m 'fix: resolve issue with login process' - For documentation:
git commit -m 'docs: update installation instructions' - For other changes: See the Conventional Commits specification for more types
- For new features:
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request using the provided templates
Please read the CODE_OF_CONDUCT.md for details on our code of conduct and the process for submitting pull requests.
This template is licensed under the Apache License 2.0 - see the LICENSE file for details.
For information about reporting security vulnerabilities, please read our Security Policy.
Note: This template is designed to be a starting point. Feel free to modify it to better suit your project's specific needs.