//! Copyright (c) 2022-2026 GitDataAi All rights reserved. use crate::bare::GitBare; use crate::error::{GitError, GitResult}; use crate::pb::DeleteTagRequest; impl GitBare { pub fn delete_tag(&self, request: DeleteTagRequest) -> GitResult<()> { crate::sanitize::validate_ref_name(&request.name)?; let result = duct::cmd( "git", [ "--git-dir", self.bare_dir.to_string_lossy().as_ref(), "tag", "-d", &request.name, ], ) .stdout_capture() .stderr_capture() .unchecked() .run()?; if !result.status.success() { return Err(GitError::CommandFailed { status_code: result.status.code(), stderr: String::from_utf8_lossy(&result.stderr).into_owned(), }); } Ok(()) } }