mirror of
https://github.com/openai/codex.git
synced 2026-11-13 21:30:47 +00:00
## Why A checkout could point its `.git` file at a trusted repository's worktree directory without proving that the repository had registered that checkout. This could cause project configuration from an unrelated checkout to be treated as trusted. ## What changed - Verify the linked worktree's `gitdir` backlink, `commondir`, registered checkout, and main checkout ownership before resolving the main repository's trust key. - Reject missing, oversized, symlinked, mismatched, or swapped Git metadata. - Preserve valid linked worktrees that use path aliases, separate Git directories, or non-UTF-8 POSIX paths. ## Testing Add resolver and config-loading coverage for forged worktrees, metadata races, case-sensitive paths, moved worktrees, and host MCP startup from project config. GitOrigin-RevId: 6052a7d10ad2d613436f20175c356abdef8c758e
52 lines
1.6 KiB
Rust
52 lines
1.6 KiB
Rust
mod apply;
|
|
mod baseline;
|
|
mod branch;
|
|
mod errors;
|
|
mod fsmonitor;
|
|
mod git_process;
|
|
mod info;
|
|
mod operations;
|
|
mod platform;
|
|
mod status;
|
|
mod trust;
|
|
|
|
/// Git configuration that rejects implicitly discovered bare repositories while
|
|
/// preserving repositories selected explicitly through `GIT_DIR` or `--git-dir`.
|
|
pub const SAFE_BARE_REPOSITORY_CONFIG: &str = "safe.bareRepository=explicit";
|
|
|
|
pub use apply::ApplyGitRequest;
|
|
pub use apply::ApplyGitResult;
|
|
pub use apply::apply_git_patch;
|
|
pub use apply::extract_paths_from_patch;
|
|
pub use apply::parse_git_apply_output;
|
|
pub use apply::stage_paths;
|
|
pub use baseline::GitBaselineChange;
|
|
pub use baseline::GitBaselineChangeStatus;
|
|
pub use baseline::GitBaselineDiff;
|
|
pub use baseline::diff_since_latest_init;
|
|
pub use baseline::ensure_git_baseline_repository;
|
|
pub use baseline::reset_git_repository;
|
|
pub use branch::merge_base_with_head;
|
|
pub use codex_protocol::protocol::GitSha;
|
|
pub use errors::GitToolingError;
|
|
pub use fsmonitor::FsmonitorOverride;
|
|
pub use fsmonitor::FsmonitorProbeRunner;
|
|
pub use fsmonitor::detect_fsmonitor_override;
|
|
pub use info::CommitLogEntry;
|
|
pub use info::GitDiffToRemote;
|
|
pub use info::GitInfo;
|
|
pub use info::canonicalize_git_remote_url;
|
|
pub use info::collect_git_info;
|
|
pub use info::current_branch_name;
|
|
pub use info::default_branch_name;
|
|
pub use info::get_git_remote_urls;
|
|
pub use info::get_git_remote_urls_assume_git_repo;
|
|
pub use info::get_git_repo_root;
|
|
pub use info::get_head_commit_hash;
|
|
pub use info::git_diff_to_remote;
|
|
pub use info::local_git_branches;
|
|
pub use info::recent_commits;
|
|
pub use platform::create_symlink;
|
|
pub use status::get_has_changes_in_repo;
|
|
pub use trust::resolve_root_git_project_for_trust;
|