Repository Analysis

vercel/turborepo

Build system optimized for JavaScript and TypeScript, written in Rust

1.1 Likely human-written View on GitHub
1.1
Adjusted Score
1.1
Raw Score
100%
Time Factor
2026-05-29
Last Push
30,466
Stars
Rust
Language
482,137
Lines of Code
2909
Files
497
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 0MEDIUM 22LOW 473

Pattern Findings

497 matches across 10 categories. Click a row to expand file-level details.

Over-Commented Block442 hits · 427 pts
SeverityFileLineSnippet
LOWcrates/turborepo-shim/src/error.rs1//! This file is intentionally empty.
LOWcrates/turborepo-shim/src/lib.rs1//! Shim for invoking the correct turbo binary version.
LOWcrates/turborepo-shim/src/lib.rs41/// no local installation was found).
LOWcrates/turborepo-shim/src/lib.rs61 ///
LOWcrates/turborepo-shim/src/lib.rs81 /// Spawn a child process from the given command.
LOWcrates/turborepo-shim/src/lib.rs101}
LOWcrates/turborepo-shim/src/run.rs41
LOWcrates/turborepo-shim/src/run.rs121 /// Path error
LOWcrates/turborepo-shim/src/run.rs141///
LOWcrates/turborepo-shim/src/local_turbo_state.rs41 }
LOWcrates/turborepo-shim/src/local_turbo_state.rs301 use tempfile::TempDir;
LOWcrates/turborepo-vt100/src/entire_screen.rs21 }
LOWcrates/turborepo-vt100/src/lib.rs1//! This crate parses a terminal byte stream and provides an in-memory
LOWcrates/turborepo-vt100/src/lib.rs21//! turborepo_vt100::Color::Idx(1),
LOWcrates/turborepo-vt100/src/screen.rs21 /// Mouse button events should be reported on button press and release.
LOWcrates/turborepo-vt100/src/screen.rs101 ///
LOWcrates/turborepo-vt100/src/screen.rs381 ///
LOWcrates/turborepo-vt100/src/screen.rs601 .write_buf(contents);
LOWcrates/turborepo-vt100/src/screen.rs641 (pos.row, pos.col)
LOWcrates/turborepo-vt100/src/callbacks.rs1/// This trait is used with `Parser::process_cb` to handle extra escape
LOWcrates/turborepo-run-summary/src/observability/mod.rs1//! Observability abstraction layer for Turborepo runs.
LOWcrates/turborepo-run-summary/src/observability/mod.rs61 /// Shutdown the observer, flushing any pending metrics.
LOWcrates/turborepo-filewatch/src/globwatcher.rs501 (path, tmp)
LOWcrates/turborepo-filewatch/src/lib.rs1//! File watching utilities for Turborepo. Includes a file watcher that is
LOWcrates/turborepo-filewatch/src/lib.rs801 // Delete symlink during file watching
LOWcrates/turborepo-filewatch/src/hash_watcher.rs181 rerun_after_current: bool,
LOWcrates/turborepo-filewatch/src/hash_watcher.rs361 // package discovery, but there is no guarantee that package discovery
LOWcrates/turborepo-filewatch/src/hash_watcher.rs801 .current_dir(repo_root.as_std_path())
LOWcrates/turborepo-filewatch/src/cookies.rs1//! Cookies.
LOWcrates/turborepo-filewatch/src/cookies.rs21//! a response (with a timeout). Upon getting the serial, a `CookiedRequest`
LOWcrates/turborepo-filewatch/src/fsevent.rs1//! Watcher implementation for Darwin's FSEvents API
LOWcrates/turborepo-filewatch/src/fsevent.rs81/// # Path Transformation Contract
LOWcrates/turborepo-filewatch/src/fsevent.rs141 /// This is the inverse of `to_device_relative()`.
LOWcrates/turborepo-filewatch/src/fsevent.rs161/// This ensures correct path reporting on non-root volumes (e.g.,
LOWcrates/turborepo-filewatch/src/fsevent.rs221fn translate_flags(flags: StreamFlags, precise: bool) -> Vec<Event> {
LOWcrates/turborepo-filewatch/src/fsevent.rs541 //
LOWcrates/turborepo-config/src/experimental_otel.rs21#[merge(strategy = merge::option::overwrite_none)]
LOWcrates/turborepo-config/src/experimental_otel.rs61 #[serde(skip_serializing_if = "Option::is_none")]
LOWcrates/turborepo-config/src/lib.rs1//! turborepo-config: Configuration loading and merging for Turborepo
LOWcrates/turborepo-config/src/lib.rs61};
LOWcrates/turborepo-config/src/lib.rs121 /// This is used for messaging to inform users when worktree cache sharing
LOWcrates/turborepo-config/src/lib.rs141 Auth(#[from] turborepo_auth::Error),
LOWcrates/turborepo-config/src/lib.rs181 ApiClient(#[source] turborepo_api_client::Error),
LOWcrates/turborepo-config/src/lib.rs201 "TURBO_TUI_SCROLLBACK_LENGTH: Invalid value. Use a number for how many lines to keep in \
LOWcrates/turborepo-config/src/lib.rs261#[serde(rename_all = "camelCase")]
LOWcrates/turborepo-config/src/lib.rs461 ///
LOWcrates/turborepo-config/src/lib.rs661 self.environment
LOWcrates/turborepo-scm/src/lib.rs161 child.stdin.take();
LOWcrates/turborepo-scm/src/git.rs201
LOWcrates/turborepo-scm/src/git_index_regression_tests.rs1//! Regression tests for the git index → file hashing pipeline.
LOWcrates/turborepo-scm/src/git_index_regression_tests.rs1781}
LOWcrates/turborepo-scm/src/crlf.rs1//! CRLF→LF normalization for file hashing.
LOWcrates/turborepo-scm/src/crlf.rs361 format!("{path}: not a regular file"),
LOWcrates/turborepo-scm/src/package_deps.rs601 // my-pkg/
LOWcrates/turborepo-scm/src/repo_index.rs201 }
LOWcrates/turborepo-scm/src/repo_index.rs561}
LOWcrates/turborepo-scm/src/repo_index.rs721
LOWcrates/turborepo-scm/src/worktree.rs1//! Git worktree detection for cache sharing between linked worktrees.
LOWcrates/turborepo-api-client/src/shared_http_client.rs1use std::sync::{
LOWcrates/turborepo-lockfiles/src/lib.rs1//! Package manager lockfile parsing, analysis, and serialization
382 more matches not shown…
Decorative Section Separators12 hits · 36 pts
SeverityFileLineSnippet
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs221// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs223// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs507// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs509// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs756// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs758// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs1098// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-scm/src/git_index_regression_tests.rs1105// ═══════════════════════════════════════════════════════════════════════════
MEDIUMcrates/turborepo-query-api/src/lib.rs11//! ├── turborepo-lib ──────► turborepo-query-api (traits)
MEDIUM.github/workflows/turborepo-release.yml75 # ┌─────────────────────────────────────────────────────────────────────────────┐
MEDIUM.github/workflows/turborepo-release.yml77 # ├─────────────────────────────────────────────────────────────────────────────┤
MEDIUM.github/workflows/turborepo-release.yml98 # └─────────────────────────────────────────────────────────────────────────────┘
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippet
CRITICALcrates/turborepo-run-summary/src/tracker.rs683 task.shared.environment_variables.specified.env.join(", ")
CRITICALcrates/turborepo-lib/src/run/builder.rs163 || (self.opts.cache_opts.cache.remote.should_use() && self.api_auth.is_some())
Hyper-Verbose Identifiers17 hits · 17 pts
SeverityFileLineSnippet
LOWlockfile-tests/runners/local.ts80function lockfileValidationCommand(
LOWpackages/turbo-vsc/src/turbo-run-terminal-options.ts24export function createTurboRunTerminalOptions(
LOWpackages/turbo-workspaces/__tests__/test-utils.ts136export function generateConvertLockMatrix() {
LOWpackages/turbo-workspaces/src/utils.ts66function getWorkspacePackageManager({
LOWpackages/turbo-workspaces/src/utils.ts242function isCompatibleWithBunWorkspaces({
LOWpackages/turbo-utils/src/managers.ts101function getYarnReleasePathVersion(yarnPath: string): string | undefined {
LOWpackages/turbo-utils/src/managers.ts165export async function getAvailablePackageManagers(
LOWpackages/turbo-utils/src/managers.ts184export async function getPackageManagersBinPaths(
LOWpackages/turbo-utils/src/examples.ts495export async function downloadAndExtractExample(root: string, name: string) {
LOWpackages/turbo-gen/__tests__/test-utils.ts4export function getWorkspaceDetailsMockReturnValue({
LOWpackages/turbo-gen/src/utils/plop.ts327function getWorkspaceGeneratorConfigs({ project }: { project: Project }) {
LOWpackages/turbo-codemod/__tests__/test-utils.ts5export function getWorkspaceDetailsMockReturnValue({
LOW…codemod/src/transforms/migrate-env-var-dependencies.ts21export function hasLegacyEnvVarDependencies(config: SchemaV1) {
LOW…commands/migrate/steps/get-transforms-for-migration.ts8export function getTransformsForMigration({
LOWpackages/create-turbo/__tests__/test-utils.ts4export function getWorkspaceDetailsMockReturnValue({
LOW…eate-turbo/src/transforms/update-commands-in-readme.ts67export function replacePackageManagerReferences(
LOWapps/docs/components/ui/chart.tsx343function getPayloadConfigFromPayload(
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippet
LOWlockfile-tests/runners/local.ts427 GIT_AUTHOR_EMAIL: "test@test.com",
LOWlockfile-tests/runners/local.ts429 GIT_COMMITTER_EMAIL: "test@test.com"
LOWcrates/turborepo-vt100/tests/window_contents.rs467 b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, \
LOWcrates/turborepo-vt100/tests/window_contents.rs467 b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, \
LOWcrates/turborepo-vt100/tests/window_contents.rs479 "Lorem ipsum dolor sit amet"
LOWcrates/turborepo-vt100/tests/window_contents.rs479 "Lorem ipsum dolor sit amet"
LOWcrates/turborepo-scm/src/git.rs562 .env("GIT_AUTHOR_EMAIL", "test@test.com")
LOWcrates/turborepo-scm/src/git.rs564 .env("GIT_COMMITTER_EMAIL", "test@test.com")
LOWcrates/turborepo-lib/src/package_changes_watcher.rs1054 .args(["config", "user.email", "test@test.com"])
LOWcrates/turborepo-lib/src/package_changes_watcher.rs1422 .args(["config", "user.email", "test@test.com"])
LOWexamples/design-system/README.md150Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget consectetur tempor, nisl nunc egestas
LOWexamples/design-system/README.md150Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget consectetur tempor, nisl nunc egestas
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippet
MEDIUMcrates/turborepo-filewatch/src/hash_watcher.rs147 // state of the filesystem, so clients will need to be robust to receiving
MEDIUMcrates/turborepo-lib/src/cli/mod.rs1380 // and made a little more robust or clear
MEDIUMcrates/turborepo-task-executor/src/command.rs410 // TODO: leverage package manager to find the local proxy
MEDIUMpackages/turbo-utils/src/get-turbo-configs.ts120// TODO: after @turbo/workspace-convert is merged, we can leverage those utils here
Self-Referential Comments5 hits · 12 pts
SeverityFileLineSnippet
MEDIUMcrates/turborepo-lockfiles/src/berry/ser.rs15const HEADER: &str = "# This file is generated by running \"yarn install\" inside your project.
MEDIUMcrates/turborepo-repository/src/package_manager/mod.rs917 "# This file is generated by running \"yarn install\" inside your \
MEDIUMcrates/turborepo-repository/src/package_manager/yarn.rs151 "# This file is generated by running \"yarn install\" inside your \
MEDIUMexamples/with-docker/docker-compose.yml25# Define a network, which allows containers to communicate
MEDIUM.github/workflows/turborepo-test.yml122 # Create a command that checks all paths
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM.github/workflows/lint-pr-title.yml41 # If `subjectPattern` is configured, you can use this property to override
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWcrates/turborepo-auth/src/lib.rs397 // Not all scopes have an expiration date, so we need to check if all of them
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOW.github/actions/check-release-pr/action.yml39 # Check if PR is from github-actions[bot] with release title