The following page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features or functionality remain at the sole discretion of GitLab Inc.
Content last reviewed 2025-03-12
The Create stage helps teams accelerate software delivery and reduce cycle times, by improving efficiency and collaboration. Essential to software delivery, is the process of creating each improvement. The Create stage delights engineers, designers, and product managers with tools to design, develop, and review these improvements efficiently.
The Create stage is made up of one DevOps stage, Create, and five groups including:
The existing team members for the Create stage can be found in the links below:
Source code management (SCM) is the foundation of an organization's software development practice. SCM tools provide the interface and controls that teams use to define the rules and workflows their developers operate within to write code and collaboratively produce software. At any size of company, it is critical that the SCM tool be intuitive to aid in productivity, streamline collaboration for reviews across teams and functions, ensure compliance, and enable best development and security practices. However, these challenges become more acute and more difficult to solve at the enterprise level. The larger an organization becomes, the greater their communication and coordination overhead is since there are more numerous, bigger, and broadly distributed teams trying to work together. To address this, the industry is adopting DevSecOps practices to increase velocity and reduce cycle time. Selecting an SCM tool is the first step on that journey.
As examples, GitLab will provide:
Security is a team sport and organizations benefit the most when the developers have it top of mind. The most successful teams integrate security practices into code reviews and even into the actual writing of code. Source code management platforms typically offer this functionality via integration with multiple other tools, bolted on. This creates context-switching and inefficiencies. SCM tools that offer security testing natively understand how critical a developer’s time and attention span are to producing great software rapidly. By purchasing tools that make the “required tasks” (i.e. approvals, security, compliance) enjoyable and low-effort, companies retain happy development talent while meeting regulations, preventing breaches, and shipping software frequently. You can read more about shifting left on the Secure stage vision.
As examples, GitLab will provide:
The developer experience is defined by development velocity, safety, and how it enables innovation and iteration. Investing in the Developer Experience therefore drives revenue and reduces risk for organizations. To provide a strong DX, a company must purchase tools that are highly usable & reliable, organized to support the developer journey, reduce context switching, and minimize decision fatigue. Such tools can significantly increase developer productivity by automating the manual repetitive tasks, removing the need for the individual developer to maintain local environments or worry about keeping libraries and dependencies up-to-date, and providing a central internal developer portal for project, process, product, and API documentation with an intuitive and beautiful UI.
As examples, GitLab will provide:
In three years the Create stage market will:
As a result, in three years GitLab will:
The Create stage has been actively delivering updates to help your development teams collaborate faster and more effectively. Here are some highlights from recent releases:
/help command in GitLab Duo Chat - A new, powerful feature for Duo Chat! Just type /help in the chat message field to explore everything it can do for you.The Create stage will focus on the following this year:
GitLab identifies who our DevSecOps application is built for utilizing the following categorization. We list our view of who we will support when in priority order.
Import existing work into GitLab from a wide variety of sources.
Priority: high • Documentation • Direction
Source code management enables teams to securely collaborate, coordinate, and share code, allowing them to deliver software faster. This category is at the "viable" level of maturity.
Priority: high • Learn more • Documentation • Direction
Review code, discuss changes, share knowledge, and identify defects in code among distributed teams via asynchronous commenting and review. Automate, track and report code reviews, and identify workflow improvements with code review analytics. This category is at the "viable" level of maturity.
Priority: high • Documentation • Direction
The GitLab Command Line Interface (CLI) is an unified tool that allows you to manage and interact with GitLab directly from the command line. This category is at the "viable" level of maturity.
Priority: medium • Documentation • Direction
Accelerate and standardize developer workflows with workspaces – secure, virtual environments with customizable libraries, dependencies, and tools for each project. This category is at the "viable" level of maturity.
These JTBD relate to the Code Creation group.
| Job statements | Maturity | Confidence | Source |
|---|---|---|---|
| When writing code, I want to get reliable help within the IDE, so I can write code more productively. |
|
Not validated | Issue |
These JTBD relate to the Code Review group. The statements were drafted for the FY21-Q2 Category Maturity Scorecard and have not been validated yet.
| Job statements | Maturity | Confidence | Source |
|---|---|---|---|
| When product improvements are identified, I want to propose changes that address them, so that I can help build a better product. |
|
Not validated | Issue |
| When my teammates propose changes, I want to review them before they are accepted, so that I can help increase the quality of changes, minimize the risk of defects, minimize the risk of out-of-scope changes, and grow the team’s expertise. |
|
Not validated | Issue |
| When my teammates propose changes, I want to ensure they are reviewed and accepted according to internal guidelines, so that we can increase the quality of changes, minimize the risk of defects, and maximize the reliability of product data. |
|
Not validated | Issue |
When I am deploying a static site I want to use kubernetes for my cloud native installation so I can leverage auto-devops and other benefits of K8.
| Job statements | Maturity | Confidence | Source |
|---|---|---|---|
| When I have a custom domain or multiple domains I want to be able to redirect the other domains to my custom/main domain so I can optimize SEO rankings and ensure traffic from like domains are tracked. |
|
Issue | |
| When I am setting up a static site I want to be able to set up the site with a wildcard DNS so I can avoid setting up a custom domain. |
|
Issue |
These JTBD relate to the Source Code Management category. These statements have been drafted for the FY24-Q1 Category Maturity assessment and have not been validated, yet.
| Job statements | Maturity | Confidence | Source |
|---|---|---|---|
| When code is meant to be private and restricted to a certain group of contributors, I want to control the access to the source code, so that I can protect the investments in intellectual property and to reduce the risk of source code exploitation. |
|
Not validated | Issue |
| When reviewing past code changes, I want to track changes and manage different revisions of the source code, so that I can identify which changes were made and when, and to reference an earlier revision if necessary. |
|
Not validated | Issue |
| When developing source code with multiple people, I want to set the rules for the collaboration, so that collaborators can explore changes and contribute efficiently. |
|
Not validated | Issue |
| When changing source code, I want to set conditions for applying these changes, so that code quality and compliance is maintained. |
|
Not validated | Issue |
| When working with large binary files, I want to version control these files with the source code, so that I can track and manage changes to the files over time. |
|
Not validated | Issue |
The Create stage pricing strategy balances the needs of individual contributors, with the needs of enterprises, to create a cycle where individual contributors gladly and rapidly adopt GitLab, and naturally create the business case for upgrading to a suitable tier, typically Premium and above. The core pillar of the Create stage is the merge request based development workflow. This touches Source Code Management, Code Review and the Web IDE, and is heavily influenced by individual developers, and managers who implement access controls for efficiency, security, quality and compliance purposes. Our investment and pricing philosophy is to:
The tier for individual contributors, personal projects, or small teams trialing GitLab. Free is important for retaining our core users Developers (SCM, Code Review, Web IDE) and exploring different avenues of expansion in the types of personas who contribute to GitLab and their use cases. Expanding support for different markets and use cases through improved binary file and monolithic repository workflows and more accessible editing tools begins at the individual contributor level, as does supporting new personas like designers and marketers.
Examples:
The tier for teams, Premium is enterprise ready and delivers important access controls and workflow controls needed for multiple teams to collaborate on the same large project. The Premium tier features for Source Code Management and Code Review are already mature, and very valuable to medium and large enterprises. Many feature requests and improvements driven by Premium customers are improvements to the experience of individual developers, which facilitates growth through expansion and standardization on GitLab.
Examples:
The tier for Executive buyers with strategic objects for their business, this tier is primarily supported through Audit and Compliance capabilities that extend project level access control features.
Examples:
There are a number of other issues that we've identified as being interesting that we are potentially thinking about, but do not currently have planned by setting a milestone for delivery. Some are good ideas we want to do, but don't yet know when; some we may never get around to, some may be replaced by another idea, and some are just waiting for that right spark of inspiration to turn them into something special.
Remember that at GitLab, everyone can contribute! This is one of our fundamental values and something we truly believe in, so if you have feedback on any of these items you're more than welcome to jump into the discussion. Our vision and product are truly something we build together!
find_project_merge_request and find_merge_request_with_access are similarNew branch in issue pagemerge_request_diff_commitsmerge_request_diff_filesrebase_commit_sha field from MR tableprojects#BlobController context lines loading logic to its own serviceuploads through web interface/branches UIlines_added and lines_removed in Merge Requests APImaximum visibility level for forks project setting to extend forking restrictionmode on blobsreview_id for Notes on API responsesdiffs/app.vue as a whole component instead of by mocking individual function internalsblobs field instead of blob for Snippet VIEW"master branch without disruptionjs-MRAppovals\| and MRDiff\| to MergeRequests\|gl- utility classesdata-qa and remove unused js- qa selectoruse_smooshpack_fork feature flagimports.log as welldiffs/store/utils.jsprojectGroups endpoint--log in the git merge command on merge of a merge requestconvertObjectPropsToCamelCase util for delete validation blobline_type=oldOverview tabthenTreeEntryPresenterGitlab::BlamePresenterBulkImports::NetworkErrorcommit_message_fieldcommit_message_fieldcommit_message_fieldduration prop from scrollToElement()delete_project_modal.vue for "Delete Project" button on app/views/projects/no_repo.html.hamlapp/views/projects/no_repo.html.hamlcompare/.......?view=parallel )/merge_requests APImerge_when_pipeline_succeeds is set to truePOST /projects/:id/repository/mergeshared_runners_enabled conflicts with its groupOnly Project Membersauthordestination_name column to destination_slug for bulk imports on db levelproject_import_level_configuration feature flag.patch links for merge request versionscreateAlert usage in app/assets/javascripts/ide/stores/modules/terminal/actions/session_controls.jscreateAlert usage in app/assets/javascripts/ide/stores/modules/terminal/actions/session_status.jscreateAlert usage in app/assets/javascripts/import_entities/import_groups/components/import_table.vuecreateAlert usage in app/assets/javascripts/import_entities/import_projects/store/actions.jscreateAlert usage in app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vuecreateAlert usage in app/assets/javascripts/pages/import/history/components/import_history_app.vueCop/StaticTranslationDefinition related to diff_viewerloading MR Widget actions are not disabled in mobile view, which could lead to clicks which should be impossiblegit gc on GitLab repositories created as mirrors Ultimatedeprecated_notes.jsdiffs_batch_cache_with_max_ageproject_export_as_ndjson and project_import_ndjson FFs"plantuml.js to render plantuml on the client side in the browserSubmit review message to the top of review commentsimport_sources is corrupteddeclared_params usage in Grape APIproject_branch_selector.vuelines-between-class-members: off overrideactivity_pub and activity_pub_projectassignees association in app/models/concerns/deprecated_assignee.rbspec/features/projects/settings/registry_settings_cleanup_tags_spec.rb feature testcorrelation_id of a parent request in asynchronous javascript requestsinclude_hidden in Project API"click_element more automatically close popoversimporting on objects through global contextinclude behaves like a rules:exists with a context after pattern comparision limit…github_importer queue namespacego-modules folder for private Go projectsShow latest file button in merge requests Premiumrebase_when_retargetting_mrsduo-user-feedback componentduo-user-feedback componentmr_pipelines_graphql turned off when a user created a merge request from a forked project …markdown branch when browsing the root shows correct content of filemr_pipelines_graphql turned off when a user created a merge request from a forked project …mr_pipelines_graphql turned off when a user created a merge request from a forked project …mr_pipelines_graphql turned off when a user created a merge request from a forked project …mr_pipelines_graphql turned off when a user created a merge request in the parent project …form-input-native-vue in app/assets/javascripts/awards_handler.jspatch-id to match CODEOWNER paths for enhanced selective resetstable-tag-vue in ee/app/assets/javascripts/approvals/components/rules/rules.vuecasted_cluster_agent_id for the selected recordsgeo_proxy_fetch_ssh_to_primarygeo_proxy_push_ssh_to_primarymr_pipelines_graphql turned off when a user created a merge request in the parent project …goleak detection to workhorse tests&plain=1.#check_accessBaseImporter/merge API Endpointeslint-plugin-vuejs-accessibility linter<MR version> switch to merge request's Commits tab and Code -> Download linkstrusted-types and require-using-trusted-types-for in the CSPskipped and ignored states should behavethis.track on @clickmerged date in recently merged sectiondata_consistency: :delayed in the workersinline_blamehide_suggested_reviewersv-model directive in commit change modallabels filter from Merge Request GraphQL resolverActionController::Live broke streaming endpointscheck_tags_changed param412 response naming is non-descriptive/explainmr_pipelines_graphql turned off when a user created a merge request from a forked project …projects_spec.rbpatch-id in the UI to make approval reset more understandablegit diff --color-moved)prevent_author_approvalprevent_committer_approvalprevent_editing_approval_rulesrequire_reauthentication_to_approveapproval_removalscommit_files_target_shacomment_on_event_enabled attribute of JIRA integration broken in 17.9 nightlybranch_rules_merge_request_approval_settingsapp/assets/javascripts/import_entities/import_groups/components/import_table.vue to to GlDisclosureDropdown or GlCollapsibleListboxapp/assets/javascripts/jira_import/components/jira_import_form.vue to to GlDisclosureDropdown or GlCollapsibleListboxcommit_sha_scope_loggergitlab-language in gitattributesduo_include_context_terminalvue/no-unused-properties violations in app/assets/javascripts/diffs/conflicting_mr variable at the controller level instead of in the HAML documentRelated to #issue statement in merge request description to the topwidget.json and cached_widget.jsonv2_approval_rulesProjects::BranchRule initializernew_project_creation_form FF is enabledCo-Authored-By in Commit Body to Display Co-Committersrapid_diffs_on_commit_show – enables rapid diffs for commit pagerapid_diffs_on_mr_show – enables rapid diffs for MR pagerun Slack slash command into CI variablesrapid_diffs_debug – enable Rapid Diffs debugging featuresproject_commits_refactor - Rollout the improved Commits List refactorsisExpandDown and new special case for expanding up with single filesmerge_request.assign=USER only works if USER is in the origin repo, not in the target repo.Draft badge when MR is Open and Draftmr_review_batch_submit – Enable feature flagreport_type attribute should be handledapp/assets/javascripts/add_context_commits_modal/store/index.js to Piniaapp/assets/javascripts/code_navigation/store/index.js to Piniaapp/assets/javascripts/contributors/stores/index.js to Piniaapp/assets/javascripts/import_entities/import_projects/store/index.js to Piniaapp/assets/javascripts/merge_conflicts/store/index.js to Piniaapp/assets/javascripts/projects/commit/store/index.js to Piniaapp/assets/javascripts/projects/commits/store/index.js to Piniaapp/assets/javascripts/ref/stores/index.js to Piniaapp/assets/javascripts/vue_merge_request_widget/stores/artifacts_list/index.js to Piniaee/app/assets/javascripts/analytics/code_review_analytics/store/index.js to Piniaee/app/assets/javascripts/approvals/stores/index.js to Piniaee/app/assets/javascripts/status_checks/store/index.js to Piniahas_active_hooks? on GroupsCan't approve if a user can't approve an MRmr_pipelines_graphql turned off when a user created a merge request in the parent project …mr_pipelines_graphql turned off when a user created a merge request from a forked project …limit_commit_markdown_preload –deduplicate_new_path_value –update_organization_push_rules Rollout Issuerebase and merge with one clickrequire_login_for_commit_tree –branches_and_tags_without_cache_pipelines – Use Gitaly calls directly for branches and tagsgit to use an ssh key without ssh-agentchanges payloadrepo/branches view (the commit is already shown)username and icon_url for slack/mattermost integration.gitattributes changesall_objects use git cat-file --batch-check --batch-all-objectsgit send-emailsource_project and source_branch through quick actionsfind_or_create_namespace method from import/base_controllerapproved? and approvals_leftcommit_item.vue and last_commit.vueBlobPresenter#hightlightmrWidgetData objectkeys.typescript-loader to load sourcegraph bundleauto_merges Premiumhttp vs. https- for non-redirect-following clientsshow_whitespace_in_diffsRatelimit-Reset and no Retry-AfterMergeRequestContextCommit and MergeRequestContextDiff for import/exportImportFailuresmerge_request detail to deprecated field property.gitlab-ci.yml in the Web IDEresolve: keyword argumentpersonal_snippet_reference_filtersapproval_settings endpointtarget=_blank (Gitpod follow up)$CI_JOB_TOKENgl-buttonenvironment.action: stop finished successfullyif (*variable) on ObjCDeferredsquash_commit_sha for existing merge requestsv-safe-html instead of v-html in latex.vuedirect url helpersproject_settings.has_confluenceproject_settings.has_confluence<a> with GlButton for Compare Git Revisionslet_it_be for user_sets_approvers_spec.rbpush_rule.rb into the Repositories namespaceGit repository URL with a middle click does not display Detect host keys and Input host keys manually buttonsuse_marker_rangesbulk_imports factoryspec/frontend_integration/diffs/diffs_interoperability_api.js to its own packagecache_home_panelmain_branch_over_mastericon_url on Mattermost Integrationmain by defaultinline_haml_diff_line_renderingcached_route_lookupsmerge_requests_author_approval to match similar fieldsgl-hover-load directive in Repository App for preloading Blobs when highlight_js disabledapi_caching_rate_limit_repository_compare and api_caching_repository_compareLast edited to UI table of projects that override instance-level integrationsGoogle::Apis::TransmissionError: execution expired errordetailed_merge_status mergeable404 after importing an exported projectlfs_enabled and packages_enabled to Project Export/ImportZentao::Client#pingZentao::Clientlabels_select_vue in zentao_issues_sidebar_rootdeleted event for merge request webhooklow urgency settingrules should not use prefix matching due to trailing new linestatic_object_token from users.allow_force_push for protected branches in APIowner_name and owner_email from project webhook dataapprovals_before_merge field usageapi_field_names to API entityHasIssueTrackerFields should validate new_issues_urlprotected field to BranchTypejid missingslack_app_verification_token settinggo-gitlab Client Librarygroup_ip_restrictionGraphqlHelpers#resolvegroup_level_git_protocol_control/projects/:id/approval_rules API and Web UIonly_positive_pagination_valuesarchive_rate_limitrepository_archive_hotlinking_interceptionbranch_list_keyset_paginationworkhorse_archive_cache_disabledAdd comment now in middle of a review when editing a pending commenthousekeeping_full_repack_period columnhousekeeping_gc_period columnBulkInsertSafe after any other concernsmax_attachment_size to 100 to match GitLab.comadmin_merge_request_approval_settings permissionsstrong_memoize_attr to strong_memoizeinherited_push_rule_for_projectstructured_repository_cacheproject_data_transfers to store egress data per project"remove_legacy_diff_note_on_github_importuse_custom_template to false in Projects API fails with 500 errorRepository#root_ref_sha methoddata_transfer_monitoring feature flagapproval_settings request on merge request create pageon_delete in workspaces table migrationscreate_processor.rbno_pagination option support from Blame viewapprovals_before_merge supportspec/frontend/diffs/components/app_spec.js for Vue 3 migrationinitialize with README option doesn't work for developers when creating a repositoryYour work -> Snippets empty statenoteable_note.vue componentValidateRemoteGitEndpointService for pull mirroring configuration via UIRouge::Lexer.guess can timeout and cause 500 errorscommit_message_negative_regex to 511 charactersprohibited_tag_name_encoding_checkGetting-Started.gitlab-ci.yml and README.md templatesdeferred on database healthy - Direct TransferInvalid revision error from GRPC when linking LFS Itemssupport_sha256_repositoriesFindLocalBranchesRequestFindAllTagsRequestsingle_endpoint_notes_import for very large projectscongregate for the Customer Engagementtable-tag-vue in app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vuelineis_sample PushRule db column to globalee/spec/lib/remote_development/agent_config/updater_spec.rbsha256 object formatcached_author_avatar_helperimport/gitearemote_development_namespace_cluster_agent_mappings tableweb_ide_cross_origin_extension_host just for .comspec/lib/api/helpers/integrations_helpers_spec.rb test.api_argumentsRepository in Project overview contentBranchRules to Gitlab/BoundedContextsproject_templates_without_min_accesshtml_safe in lib/gitlab/blame.rb/approve provides approval when Approve button is unavailableactor argument to feature flag resolversignatures in webMinimum approvals requiredtop-level-only option for group graphql queryinclude directive do not show in the markupGroup#shared_into_ancestors scopedisable_git_http_fetch_writes feature flagparallel_push_checks feature flagcached_route_lookups feature flagx509_forced_cert_loading feature flag404 Avatar Not Found when download an in-git avatarallowed to create label for Protected Tagsdelete tag button for tags which are protectedGitlab::Git::TagPolicy to check if the current user can create tagsallow_fork_sync field to databaseAllow fork sync toggle to branch rules/path entries are valid paths in repositoryresource_url_template into workspaces?allow_multi_rule in approval rulesWriteAheadLog DB health check for placeholder user record reassignmentreassignment_throttling_table_checkorganization_id column from push_rules tableeditor GraphQL field from workspace type and queriesdisable_message_attribute_on_mr_diff_commitsmerge_requests_diff_commits_limituser_contribution.ndjson for Offline TransferFull File for Rapid Diffs diff_file endpointpersonal_access_token_import_github_path for formPath in GitHub Importlast_used to the Access Token Webhook payloadoptimized_commit_storagegitlab_custom_project_template from import_sources columnuploads table in file-based exportgitlab_for_jira_issue_keys_checkmountSources and sourceMapping until we support them.path filter in ListCommits GraphQL queryuser_contributions.ndjson in offline transferoffline_transfer_exportsIsNamespaceProject logicinit functions where possibleRedis to implement distributed cache of API requests