Radish alpha
r
Radicle CI broker
Radicle
Git (anonymous pull)
Log in to clone via SSH
fix(src/bin/cibtool.rs): ensure ref change event has a base commit
Lars Wirzenius committed 1 year ago
commit 17828919aef9596bf76c5cf9575ce7368ab6ab40
parent 105a09a8db9c708976121d4ca50f0f66344ad0b9
2 files changed +7 -2
modified src/bin/cibtool.rs
@@ -770,7 +770,9 @@ impl TriggerCmd {
        let name =
            RefString::try_from(name.clone()).map_err(|e| CibToolError::RefString(name, e))?;

-
        let event = BrokerEvent::new(&rid, &name, &oid, None);
+
        let base = self.lookup_commit(rid, &format!("{oid}^")).unwrap_or(oid);
+

+
        let event = BrokerEvent::new(&rid, &name, &oid, Some(base));

        let db = args.open_db()?;
        let id = db.push_queued_event(event)?;
modified src/msg.rs
@@ -264,11 +264,14 @@ impl<'a> RequestBuilder<'a> {
        before: Oid,
        after: Oid,
    ) -> Result<PushEvent, MessageError> {
-
        let push_commits: Vec<Oid> = repo
+
        let mut push_commits: Vec<Oid> = repo
            .history(after)?
            .take_while(|c| if let Ok(c) = c { c.id != before } else { false })
            .map(|r| r.map(|c| c.id))
            .collect::<Result<Vec<Oid>, _>>()?;
+
        if push_commits.is_empty() {
+
            push_commits = vec![before];
+
        }
        Ok(PushEvent {
            pusher,
            before,