API to upload LSIF artifacts
Problem to solve
To natively offer code navigation in GitLab we need to understand the structure of the code stored in GitLab. But we don't have this information stored in GitLab.
When I clone a repository to view in my local editor, I don't get code intelligence until I install the entire developer tool chain. Using LSIF it is possible to view code intelligence immediately (https://github.com/Microsoft/vscode-lsif-extension)
LSIF (Language Server Index Format) makes it possible to statically dump code intelligence data typically served by a language server into a static file.
If we provided an API for upload, LSIF data could be generated and uploaded by a CI job.
Future iteration: If we provided an API for download, LSIF data could be used by:
- GitLab for web based code nav
- developers for local code nave
- tools like Sourcegraph to save them needing to clone the repo and generate the LSIF file themselves
- Add an API to upload an LSIF for a specific SHA
Permissions and Security
Developers and above should have permission to upload LSIF data for any commit
What does success look like, and how can we measure that?
We should measure simple usage with:
- count of projects with LSIF artifacts uploaded in last 30 days
- this number is important for determining if usage is sustained
What is the type of buyer?
Developer, therefore this feature should go in Core.