Tool
import
Add another repository, directory, or report to the index so it can be searched alongside your workspace.
A question about your code often reaches into a dependency or another service. Importing that source gives it RepoQL addresses and makes its indexed content available to the same search, read, and query tools. You can then include both projects in one investigation.
Choose the source you need
A remote git repository is cloned into storage managed by RepoQL. A local directory is indexed where it already lives. An S3 import reads objects from the bucket, with some large or binary objects represented by metadata. Those choices determine where the content comes from and how it is refreshed.
SARIF and coverage reports add findings to files already in the index. They let you read diagnostics or coverage beside the relevant source. Importing a report does not run the analyser or test suite that produced it.
Wait for indexing before drawing conclusions
Repository and directory imports return an operation identifier while work continues in the background. Files become searchable as they are indexed. An early result can be useful, but it does not describe the complete import.
Re-importing an existing repository updates it incrementally. Use the operation status and the response’s index-readiness information to tell whether it has finished. Host commands provide status and diagnostics.
Understand the analysis setting
New imports normally use links analysis: path-based relationships such as imports and document links can resolve. Full cross-file name resolution, including supported call-to-declaration relationships, requires full analysis. Choose it when the investigation needs those relationships; it adds indexing work.
An imported repository can be searchable without having a complete call graph. Language support and dynamic dispatch also affect which relationships can be resolved.
Example: read a dependency’s implementation
Terminal
rql import github://dotnet/roslyn
Once indexing has completed, scope reads and searches to github://dotnet/roslyn/**. Use an @ref suffix to select a version; a commit identifier fixes the revision, while a branch can move.
Source forms and options
| Source form | Meaning |
|---|---|
| github://owner/repo | A GitHub repository. An @ref suffix selects a branch, tag, or commit. |
| git://host/path | A git remote. HTTPS, SSH, and scp-style git addresses are also accepted. |
| local:///absolute/path | An existing directory, indexed in place. An existing directory path or . also works. |
| file:///absolute/repo.git | A repository on disk to clone, rather than a directory to mount in place. |
| s3://bucket/prefix/ | Objects in an S3 or compatible bucket. |
| sarif:///absolute/report.sarif | Diagnostics from a SARIF report. |
| coverage:///absolute/report.xml | Coverage annotations from a supported report. |
The MCP parameter is importUri. The CLI also accepts --analysis full to enable full analysis. Prefixing the import URI with - removes the import and its indexed data; it does not delete a mounted local directory.
A local checkout with a readable remote is assigned its canonical repository identity. Private remotes need credentials available to the host. Managed clones may be reset during refresh, so use your working checkout for edits. Report re-imports replace the prior findings from that source.
Further reference
In the installed manual: help:///tools/import.md, help:///commands/import.md.