Radish alpha
r
rad:zwTxygwuz5LDGBq255RA2CbNGrz8
Radicle CI broker
Radicle
Git
feat: `cibtool trigger` uses default branch by default
Lars Wirzenius committed 8 months ago
commit 5950499587a05fe2778c166ed1aa74543779659c
parent b84fffa
2 files changed +17 -3
modified src/bin/cibtool.rs
@@ -274,6 +274,9 @@ enum CibToolError {
    #[error("failed to open git repository in node storage: {0}")]
    RepoOpen(RepoId, #[source] radicle::storage::RepositoryError),

+
    #[error("failed to get project information for {0}")]
+
    GetProject(RepoId, #[source] radicle::storage::RepositoryError),
+

    #[error("failed to parse git ref as a commit id: {0}")]
    RevParse(String, #[source] radicle::git::raw::Error),

modified src/bin/cibtoolcmd/trigger.rs
@@ -16,7 +16,7 @@ pub struct TriggerCmd {

    /// Set the name of the ref the event refers to.
    #[clap(long = "ref", aliases = ["name"], default_value = "main")]
-
    name: String,
+
    name: Option<String>,

    /// Set the commit the event refers to. Can be the SHA1 commit id,
    /// or a symbolic Git revision, as understood by `git rev-parse`.
@@ -49,8 +49,19 @@ impl Leaf for TriggerCmd {
        let oid = util::oid_from_cli_arg(&profile, rid, &self.commit)?;

        let base = util::lookup_commit(&profile, rid, &format!("{oid}^")).unwrap_or(oid);
-
        let branch_name = branch_ref(&ref_string(&self.name).map_err(CibToolError::RefError)?)
-
            .map_err(CibToolError::RefError)?;
+
        let branch_name = if let Some(name) = &self.name {
+
            branch_ref(&ref_string(name).map_err(CibToolError::RefError)?)
+
                .map_err(CibToolError::RefError)?
+
        } else {
+
            let repo = profile
+
                .storage
+
                .repository(rid)
+
                .map_err(|err| CibToolError::RepoOpen(rid, err))?;
+
            let project = repo
+
                .project()
+
                .map_err(|err| CibToolError::GetProject(rid, err))?;
+
            project.default_branch().clone()
+
        };
        let event = CiEvent::branch_updated(nid, rid, &branch_name, oid, base)
            .map_err(CibToolError::CiEvent)?;