|  | ||
|---|---|---|
| .. | ||
| cicd | ||
| code_intelligence | ||
| contributing | ||
| database | ||
| documentation | ||
| event_tracking | ||
| experiment_guide | ||
| fe_guide | ||
| feature_categorization | ||
| feature_flags | ||
| geo | ||
| go_guide | ||
| i18n | ||
| img | ||
| integrations | ||
| new_fe_guide | ||
| python_guide | ||
| refactoring_guide | ||
| shell_scripting_guide | ||
| telemetry | ||
| testing_guide | ||
| ux_guide | ||
| README.md | ||
| adding_database_indexes.md | ||
| api_graphql_styleguide.md | ||
| api_styleguide.md | ||
| application_limits.md | ||
| application_secrets.md | ||
| approval_rules.md | ||
| architecture.md | ||
| auto_devops.md | ||
| background_migrations.md | ||
| build_test_package.md | ||
| changelog.md | ||
| chaos_endpoints.md | ||
| chatops_on_gitlabcom.md | ||
| code_comments.md | ||
| code_review.md | ||
| creating_enums.md | ||
| cycle_analytics.md | ||
| dangerbot.md | ||
| database_debugging.md | ||
| database_query_comments.md | ||
| database_review.md | ||
| db_dump.md | ||
| deleting_migrations.md | ||
| diffs.md | ||
| distributed_tracing.md | ||
| doc_styleguide.md | ||
| ee_features.md | ||
| elasticsearch.md | ||
| emails.md | ||
| feature_flags.md | ||
| file_storage.md | ||
| filtering_by_label.md | ||
| foreign_keys.md | ||
| frontend.md | ||
| gemfile.md | ||
| geo.md | ||
| git_object_deduplication.md | ||
| gitaly.md | ||
| github_importer.md | ||
| gitlab_diagram_overview.odg | ||
| gotchas.md | ||
| hash_indexes.md | ||
| i18n_guide.md | ||
| import_export.md | ||
| import_project.md | ||
| insert_into_tables_in_batches.md | ||
| instrumentation.md | ||
| interacting_components.md | ||
| internal_api.md | ||
| issuable-like-models.md | ||
| issue_types.md | ||
| iterating_tables_in_batches.md | ||
| kubernetes.md | ||
| lfs.md | ||
| licensed_feature_availability.md | ||
| licensing.md | ||
| logging.md | ||
| mass_insert.md | ||
| merge_request_performance_guidelines.md | ||
| migration_style_guide.md | ||
| module_with_instance_variables.md | ||
| multi_version_compatibility.md | ||
| namespaces_storage_statistics.md | ||
| newlines_styleguide.md | ||
| omnibus.md | ||
| ordering_table_columns.md | ||
| packages.md | ||
| performance.md | ||
| permissions.md | ||
| pipelines.md | ||
| policies.md | ||
| polling.md | ||
| polymorphic_associations.md | ||
| post_deployment_migrations.md | ||
| profiling.md | ||
| projections.md | ||
| prometheus.md | ||
| prometheus_metrics.md | ||
| pry_debugging.md | ||
| query_count_limits.md | ||
| query_recorder.md | ||
| rails_initializers.md | ||
| rake_tasks.md | ||
| reactive_caching.md | ||
| redis.md | ||
| reference_processing.md | ||
| renaming_features.md | ||
| repository_mirroring.md | ||
| reusing_abstractions.md | ||
| rolling_out_changes_using_feature_flags.md | ||
| routing.md | ||
| scalability.md | ||
| secure_coding_guidelines.md | ||
| serializing_data.md | ||
| service_measurement.md | ||
| session.md | ||
| sha1_as_binary.md | ||
| shared_files.md | ||
| shell_commands.md | ||
| sidekiq_debugging.md | ||
| sidekiq_style_guide.md | ||
| single_table_inheritance.md | ||
| sql.md | ||
| swapping_tables.md | ||
| testing.md | ||
| ui_guide.md | ||
| understanding_explain_plans.md | ||
| uploads.md | ||
| utilities.md | ||
| value_stream_analytics.md | ||
| verifying_database_capabilities.md | ||
| what_requires_downtime.md | ||
| windows.md | ||
| writing_documentation.md | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	| comments | description | 
|---|---|
| false | Learn how to contribute to GitLab. | 
Contributor and Development Docs
Get started
- Set up GitLab's development environment with GitLab Development Kit (GDK)
- GitLab contributing guide
- Issues workflow for more information on:
- Issue tracker guidelines.
- Triaging.
- Labels.
- Feature proposals.
- Issue weight.
- Regression issues.
- Technical or UX debt.
 
- Merge requests workflow for more
information on:
- Merge request guidelines.
- Contribution acceptance criteria.
- Definition of done.
- Dependencies.
 
- Style guides
- Implement design & UI elements
 
- Issues workflow for more information on:
- GitLab Architecture Overview
- Rake tasks for development
Processes
Must-reads:
- Code review guidelines for reviewing code and having code reviewed
- Database review guidelines for reviewing database-related changes and complex SQL queries, and having them reviewed
- Secure coding guidelines
- Pipelines for the GitLab project
Complementary reads:
- GitLab core team & GitLab Inc. contribution process
- Security process for developers
- Guidelines for implementing Enterprise Edition features
- Danger bot
- Generate a changelog entry with bin/changelog
- Requesting access to Chatops on GitLab.com (for GitLab team members)
UX and Frontend guides
- GitLab Design System for building GitLab with existing CSS styles and elements
- Frontend guidelines
- Emoji guide
Backend guides
- GitLab utilities
- Issuable-like Rails models
- Logging
- API style guide for contributing to the API
- GraphQL API style guide for contributing to the GraphQL API
- Sidekiq guidelines for working with Sidekiq workers
- Working with Gitaly
- Manage feature flags
- Licensed feature availability
- Dealing with email/mailers
- Shell commands in the GitLab codebase
- Gemfileguidelines
- Pry debugging
- Sidekiq debugging
- Accessing session data
- Gotchas to avoid
- Avoid modules with instance variables if possible
- How to dump production data to staging
- Working with the GitHub importer
- Import/Export development documentation
- Test Import Project
- Elasticsearch integration docs
- Working with Merge Request diffs
- Kubernetes integration guidelines
- Permissions
- Prometheus
- Guidelines for reusing abstractions
- DeclarativePolicy framework
- How Git object deduplication works in GitLab
- Geo development
- Routing
- Repository mirroring
- Git LFS
- Developing against interacting components or features
- File uploads
- Auto DevOps development guide
- Mass Inserting Models
- Value Stream Analytics development guide
- Issue types vs first-class types
- Application limits
- Redis guidelines
- Rails initializers
- Code comments
- Renaming features
- Windows Development on GCP
- Code Intelligence
- Approval Rules
- Feature categorization
Performance guides
- Instrumentation for Ruby code running in production environments
- Performance guidelines for writing code, benchmarks, and certain patterns to avoid
- Merge request performance guidelines for ensuring merge requests do not negatively impact GitLab performance
- Profiling a URL, measuring performance using Sherlock, or tracking down N+1 queries using Bullet
Database guides
See database guidelines.
Integration guides
- Jira Connect app
- Security Scanners
- Secure Partner Integration
- How to run Jenkins in development environment
Testing guides
Refactoring guides
Documentation guides
Internationalization (i18n) guides
Telemetry guides
Experiment guide
Build guides
Compliance
- Licensing for ensuring license compliance
Go guides
Shell Scripting guides
Domain-specific guides
Other Development guides
- Defining relations between files using projections
- Reference processing
- Compatibility with multiple versions of the application running at the same time