mirror of
https://github.com/openai/codex.git
synced 2026-05-18 10:12:59 +00:00
Create codex-git-utils, move the existing git helpers into it, and migrate the GitInfo helpers out of core so rollout can depend on the shared crate without keeping its own git info module. Co-authored-by: Codex <noreply@openai.com>
codex-git-utils
Helpers for interacting with git, including patch application and worktree snapshot utilities.
use std::path::Path;
use codex_git_utils::{
apply_git_patch, create_ghost_commit, restore_ghost_commit, ApplyGitRequest,
CreateGhostCommitOptions,
};
let repo = Path::new("/path/to/repo");
// Apply a patch (omitted here) to the repository.
let request = ApplyGitRequest {
cwd: repo.to_path_buf(),
diff: String::from("...diff contents..."),
revert: false,
preflight: false,
};
let result = apply_git_patch(&request)?;
// Capture the current working tree as an unreferenced commit.
let ghost = create_ghost_commit(&CreateGhostCommitOptions::new(repo))?;
// Later, undo back to that state.
restore_ghost_commit(repo, &ghost)?;
Pass a custom message with .message("…") or force-include ignored files with
.force_include(["ignored.log".into()]).