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.
|Code Search||Search through all your code|
|Code Navigation||Codes language intelligence. Find all references, Jump to Definition, explore all repositories|
Finding anything in GitLab should be straightforward.
Global Search is the core search feature for GitLab, as the one place to search across all projects, groups, and scopes.
There are two modes Global Search can operate in, depending on the instance configuration:
The primary advantages of Advanced Search:
Global Search makes everything in GitLab easy to find. GitLab’s competitors can not be allowed to out-deliver on core capabilities like Code Search and Advanced Search. Our customer development organizations will always compare GitLab to our competitors. Global Search features are used frequently by nearly all users. We need to surpass the capabilities of our competitors.
Great development happens when developers stop seeing boundaries and focus on understanding code and improving it. Over time very few developers will be comfortable updating every part of the code. Even the few that reach that level find it nearly impossible to keep up with the growing complexity of the code and the constant evolution and additions to the code.
In the end, no one knows all the code. We barely understand how it works. It stops developers from making changes. 74% of development teams avoid making changes because they fear it will break something.
One solution is to break down these areas into more manageable chunks, and adding code owners helps because at least someone is responsible. That benefit is short-lived because the code keeps growing and changing. Eventually, you add more code owners so that progress doesn’t slow down and the cycle begins again.
Code grows in size and complexity, and it doesn’t stop growing. While we can’t stop code from growing, we can make it easy to explore and research regardless of the volume.
Global Search allows you to explore everything in GitLab. Search decreases the pressure on code ownership while increasing engineering confidence in the code changes and saving everyone's time.
There are many practices for understanding code. In GitLab, We can review the file history or blame to understand how a commit is related to a larger change. We can look for the merge request or Issue that details the larger change. We can review the comments to understand the reason for certain changes. Global Search contains all of these scopes and allows users to use any of them as an entry point to their research.
Many of these search needs have been solved in verticals, like issue lists and merge request lists. The backend capabilities are becoming duplicative to Global Search and we will need to replace the underlying services to use the same services as Global Search.
Global Search has a never-ending value to GitLab as the product grows. However, five specific areas can be improved now I believe this accounts for 80% of customers' current needs.
For Global Search to make “everything” in GitLab easy to find, we need to close the gap on available content indexed in Advanced Search. [Vulnerabilities, Pipelines, and Epics are currently not indexed by Advanced Search] (https://gitlab.com/gitlab-org/gitlab/-/issues/207907). We need to add new scopes to GitLab.
Code Search has to be as trustworthy and accurate as grep in finding all the results across my repositories.
Along with being able to keyword search Code, there is more value in being able to explore the code. We need to add more ways to filter code results. Users expect that Code Search for GitLab should work more like they would search on there local IDE. The most helpful metadata for exploring code comes from other scopes and their relationships to code. Enriching the index with content from commits and merge requests related to code will enable many methods to explore code.
Adding features, like filters, needs to be carefully researched and understood to make a comfortable user experience that encourages users to interact with the features. There is a lot of information stored in GitLab, and when creating a practical design, we want to avoid making the experience feel overwhelmed with options that may not seem relevant or helpful. We recently concluded Foundational Research for Global Search and found that the current experience lacks capabilities, is not intuitive, and takes too much time to locate content. We should also provide a way for users to save searches, export search results, and show recent searches under the search box. See more: Add saved search capabilities to Global Search.
The Findings from the research indicated several specific areas for improvment.
Global Search needs to account for Stability, Performance, and Scalability Across many diffrent sizes to operate for GitLab.
As the source code stored in GitLab grows, and we add additional features to GitLab, the Advanced Search infrastructure requirements will also increase. We need to iterate and find more effective ways to operate Advanced Search with low latency and optimize the minimum requirements for self-managed instances and Gitlab.com. There is a direct relationship between the hardware configuration and scaling. We will depend on coordinating with Infrastructure Operations. We should also look for opportunities to coordinate with Gitaly for improving the indexing needs for Advanced Search
There is a low user tolerance for slow search features. We need to iterate on front-end changes to find ways to improve the overall page load time. We constantly monitor page performance because we will be adding features that will impact page load times.
The GitLab user documentation is the only place for customers to learn about the features GitLab offers for searching GitLab. However, Global Search covers a very large variety of uses across all personas and the entire product. We must offer examples of the many uses of Global Search as it relates to the daily need of various personas. Because the most valuable features are part of Advanced Search, We need to provide articulated details on how to administer Advanced Search.
Global Search Unique Monthly Users should grow at 10% MoM as we continue to see features and use cases enabled or improved. If Monthly users continue to grow, this will indicate that we are going in the right direction. If we see this decline consistently, it will signify that a correction in direction is needed. If the level is sustained over multiple quarters, then a new vision is needed, and we should consider changing the metric from a focus on growth to a focus on quality, like result clickthrough rate. We should change this goal of GMAU growth to outpace GitLab's overall UMAU.
The maturity of Global Search Categories of Advanced Search and Code Search is "viable." We expect Global Search categories to be part of the Product Direction Goal of having 50% of Categories in Lovable by the end of 2023. GitLab's Advanced Search experience works for self-managed instances and across all Paid SaaS Experiences. UX Research and SUS scores have shown an immediate need to improve aspects of the UI and functionality of search capabilities.
Moving Advanced Search and Code Search to the Mturity stage "complete" will require these next steps:
In congruence there are is Additional UX Research and deliverables from that research that should benefit the results of the maturity scorecard.
In June 2022 we completed the analysis of the Global Search Foundational Research that looked at how users use Global Search to identify pain points that lead to actionable insights.
There are 4 key findings from the study.
These Findings resulted in 11 actionable insights that will be used to priortize near term work for Global Search. Actionable Insights Roadmap
Customers who ask about Global Search are most likely to focus on Code Search. Code Search is available starting at Premium and indexes all the code in the GitLab instance on the Main Branch. Self Managed users will need to set up their own Elasticsearch or OpenSearch Cluster and connect it to GitLab using the Admin Settings for Advanced Search.
We chronicled our journey of deploying Elasticsearch for GitLab.com through several blog posts.
We have added a live roadmap to track progress as we complete major epics.
These are the next issues to be worked on that have direct feedback from customers.