mirror of
https://github.com/openai/codex.git
synced 2026-09-04 15:08:45 +00:00
## Why Git remote URLs can embed usernames, passwords, or tokens. Codex carries these URLs through turn metadata and persisted thread metadata, so credentials must be removed before a remote enters those paths. ## What changed - Add `SanitizedGitUrl`, which parses Git URL and SCP-style remotes, strips authentication data, and preserves the conventional `git` SSH user. - Use sanitized remotes when collecting Git metadata, enriching model requests, discovering cloud environments, updating thread metadata, and reading legacy rollouts. Reject or omit malformed remotes instead of retaining their raw contents. - Keep API, schema, and TypeScript representations as strings while enforcing sanitization in Rust. ## Testing - Cover URL schemes, SCP and IPv6 forms, remote helpers, encoded paths, malformed values, and legacy deserialization. - Verify credentials do not appear in model requests, API responses, SQLite, or rollout files. GitOrigin-RevId: 6435efc4c45bfbfad4723ce7a0457cb00175f25c
53 lines
1.7 KiB
Rust
53 lines
1.7 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::SanitizedGitUrl;
|
|
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;
|