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 formMeaning
github://owner/repoA GitHub repository. An @ref suffix selects a branch, tag, or commit.
git://host/pathA git remote. HTTPS, SSH, and scp-style git addresses are also accepted.
local:///absolute/pathAn existing directory, indexed in place. An existing directory path or . also works.
file:///absolute/repo.gitA 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.sarifDiagnostics from a SARIF report.
coverage:///absolute/report.xmlCoverage 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.