Indexing
How Scrubby keeps a repository's domains, conventions, and connections current after the first index.
Full vs. incremental
The first index on a repository is always a full index. Every file is scanned and every domain is classified from scratch. Every index after that is incremental by default: only changed files are reprocessed, and domains are only reclassified when the change is large enough to warrant it (for example, a dependency file changed, or a large batch of new files was added). An incremental index is faster than a full one because it skips unchanged work.
What triggers a re-index
- A push to the default branch, if the GitHub App is installed on the repository — this triggers an automatic incremental index.
- Asking your editor to re-index.
- Clicking Re-index on the repository's row in the dashboard.
You rarely need to trigger one manually. Reasons to do so anyway:
- A large restructure (directory moves, a new language added) that you want reflected immediately rather than waiting on the next push.
- Fresh convention extraction after a refactor.
- The dashboard shows the index is stale for a repository that isn't covered by the GitHub App's push webhook.
Checking index status
The dashboard's Repositories page shows each repository's current status (pending, indexing, indexed, or failed) on its card, along with when it was last indexed. You'll also get an email when an index finishes or fails.
Pinning an index to a past date
A repository can be pinned to a fixed point in its history with an index cutoff date, so ongoing pushes stop moving the index forward. This is a conventions feature — see Repo Conventions for how to set it and what it affects.
Removing a repository
Removing a repository from the dashboard deletes its domains, segments, conventions, and findings from Scrubby, and is immediate and irreversible. It does not uninstall the GitHub App — do that from GitHub's installation settings. Re-adding the repository later starts from a fresh full index.