πŸ“„ File detail

utils/gitSettings.ts

🧩 .tsπŸ“ 19 linesπŸ’Ύ 838 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œutils/”, which covers cross-cutting helpers (shell, tempfiles, settings, messages, process input, …). On the API surface it exposes shouldIncludeGitInstructions β€” mainly functions, hooks, or classes. It composes internal code from envUtils and settings (relative imports). What the file header says: Git-related behaviors that depend on user settings. This lives outside git.ts because git.ts is in the vscode extension's dep graph and must stay free of settings.ts, which transitively pulls @opentelemetry/api + undici (forbidden in vscode). It's also a cycle: settings.ts β†’ git/.

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

Git-related behaviors that depend on user settings. This lives outside git.ts because git.ts is in the vscode extension's dep graph and must stay free of settings.ts, which transitively pulls @opentelemetry/api + undici (forbidden in vscode). It's also a cycle: settings.ts β†’ git/gitignore.ts β†’ git.ts, so git.ts β†’ settings.ts loops. If you're tempted to add `import settings` to git.ts β€” don't. Put it here.

πŸ“€ Exports (heuristic)

  • shouldIncludeGitInstructions

πŸ–₯️ Source preview

// Git-related behaviors that depend on user settings.
//
// This lives outside git.ts because git.ts is in the vscode extension's
// dep graph and must stay free of settings.ts, which transitively pulls
// @opentelemetry/api + undici (forbidden in vscode). It's also a cycle:
// settings.ts β†’ git/gitignore.ts β†’ git.ts, so git.ts β†’ settings.ts loops.
//
// If you're tempted to add `import settings` to git.ts β€” don't. Put it here.

import { isEnvDefinedFalsy, isEnvTruthy } from './envUtils.js'
import { getInitialSettings } from './settings/settings.js'

export function shouldIncludeGitInstructions(): boolean {
  const envVal = process.env.CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS
  if (isEnvTruthy(envVal)) return false
  if (isEnvDefinedFalsy(envVal)) return true
  return getInitialSettings().includeGitInstructions ?? true
}