Add line-specific historic information to the source code viewer
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=386639) </details> <!--IssueSummary end--> ### Description This is a proposal to add the ability to view information about the most recent changes for each line when viewing source code via the repository source code viewer without having to leave the page. The idea is to give users the ability to quickly gain more insight into when and why a particular line was changed without having to leave the page. Similar solutions such as [GitLens](https://github.com/gitkraken/vscode-gitlens#current-line-hovers) already exist for IDEs. ### Mockups ![Screenshot_2022-12-23_at_09.57.47](https://gitlab.com/gitlab-org/gitlab/uploads/96f6878a62f7b5c4e2a1e12225a4b2e4/Screenshot_2022-12-23_at_09.57.47.png) ![Screen_Recording_2022-12-23_at_09.54.51.2022-12-23_09_56_04](https://gitlab.com/gitlab-org/gitlab/uploads/e41e08fc65d090a3ccb3701a1af0c6e2/Screen_Recording_2022-12-23_at_09.54.51.2022-12-23_09_56_04.gif) **Some initial ideas for content:** - Author who last changed the line - Date indicating when the most recent commit that changed the line was authored - The git commit message of the most recent commit that changed the line - A diff of the changed line - A link to the related issue - A link to the MR that introduced the most recent commit We should consider adding the ability disable this feature on a user level (User Preferences) because some users may not want this extra information while interacting with the source viewer. ### Problem to solve Increase user productivity and reduce context switching by giving users the ability to view historical information about a particular line without having to leave the current page. <!-- What is the user problem you are trying to solve with this issue? --> ### Intended users * [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead) * [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer) * [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer) * [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator) * [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst) * [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager) * [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer) * [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test) * [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops) * [Ingrid (Infrastructure Operator)](https://about.gitlab.com/handbook/product/personas/#ingrid-infrastructure-operator) * [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst) * [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor) ### Feature Usage Metrics <!-- How are you going to track usage of this feature? Think about user behavior and their interaction with the product. What indicates someone is getting value from it? Create tracking issue using the Snowplow event tracking template. See https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Snowplow%20event%20tracking.md --> <!-- Label reminders Use the following resources to find the appropriate labels: - https://gitlab.com/gitlab-org/gitlab/-/labels - https://about.gitlab.com/handbook/product/categories/features/ --> <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This 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.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
issue