Introduction
Gitea welcomes contributions from the community! Whether you’re fixing bugs, adding features, improving documentation, or translating the interface, your help is appreciated.Before starting work on a significant change, please discuss it in an issue first to ensure alignment with the project’s goals.
Ways to Contribute
Report Bugs
Help identify and document bugs in the issue tracker
Fix Issues
Contribute code fixes for existing issues
Add Features
Propose and implement new features
Improve Docs
Enhance documentation and examples
Translate
Help translate Gitea into other languages
Review Code
Participate in code review for pull requests
Getting Started
Fork the Repository
Fork go-gitea/gitea on GitHub
Development Workflow
Making Changes
Commit Guidelines
Follow these conventions for commit messages:Submitting Pull Requests
Fill Out PR Template
Provide:
- Clear description of changes
- Related issue numbers (use
Fixes #123for automatic closing) - Screenshots/videos for UI changes
- Testing performed
Code Review Process
PR Requirements
- Tests: Add tests for new functionality
- Documentation: Update docs for user-facing changes
- Commits: Clean commit history (squash if needed)
- Conflicts: Resolve merge conflicts
- DCO: All commits must be signed off (Developer Certificate of Origin)
Getting PR Merged
PR Approval Process
PR Approval Process
- Review: PRs require review from maintainers
- Testing: Automated tests must pass
- Approval: At least one maintainer approval required
- Merge: Maintainers will merge approved PRs
Stale PRs
Stale PRs
PRs with no activity for 60 days may be closed. You can always reopen if you resume work.
Developer Certificate of Origin (DCO)
All commits must include aSigned-off-by line:
Coding Standards
Go Code
- Follow Effective Go
- Use
gofmtfor formatting (enforced bymake fmt) - Add comments for exported functions and types
- Write tests for new code
- Handle errors explicitly
Frontend Code
- Follow the ESLint configuration
- Use TypeScript for type safety
- Write accessible HTML
- Test in multiple browsers
Database Migrations
- Create migrations for schema changes
- Test both upgrade and downgrade paths
- Support all database backends (PostgreSQL, MySQL, SQLite, MSSQL)
Translation
Help translate Gitea through Crowdin:Security Issues
Community
Connect with other contributors:- Discord: Join the Gitea Discord
- Forum: Discourse Forum
- GitHub Discussions: go-gitea/gitea discussions
Resources
Building from Source
Set up your development environment
Testing Guide
Learn how to write and run tests
Architecture
Understand Gitea’s architecture
CONTRIBUTING.md
Full contribution guidelines on GitHub
For detailed contribution guidelines, see CONTRIBUTING.md in the repository.