rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood5bff08f75044330991dc6f0e1e9e986d5441caf5
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Updated",
"patch": {
"id": "ae0c6cc8b3f71c94bde192ee99e82dc70173cb75",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"title": "Revisit bare repositories",
"state": {
"status": "open",
"conflicts": []
},
"before": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"after": "5bff08f75044330991dc6f0e1e9e986d5441caf5",
"commits": [
"5bff08f75044330991dc6f0e1e9e986d5441caf5",
"21f4da51b1f3bd248a44e54cd284631ec1d4dbec",
"0f9d84469851dd5ea6933caeb146390154cfc64e",
"9a420c85361d16f52c6deb2303ffc7f120927e81",
"dc1efb33cd7d294e786cc8891f15b25825ddf1e2",
"daa0fb0170bf7665f45a28be182a149ace0554a8",
"05ac6fdbbcf6722e9565e512306d68c0950bfeac",
"4bc2ac7744e5a9419eb68925bc1b3738e68dacc2",
"9700ad031e82d7bd2d8a3e68f42fb205dbefd416",
"b60e69405bd2e5252fad458b34b33257a5dc291d",
"af4f89c7cc4f763019c89c01c5a75d78e28f5016",
"4837f1f9a3fd1f3e5e24bd6ed53c37c6e5a4cfdc"
],
"target": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "ae0c6cc8b3f71c94bde192ee99e82dc70173cb75",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "This patchset starts off with changes to `radicle-remote-helper`: Maintainence such as making the crate binary-only and a small clean up.\nThen, handling of `GIT_DIR` is simplified throughout `radicle{,-remote-helper,-cli}`, which unlocks usage of the remote helper with bare repositories.\nNext, the commands `rad init` and `rad clone` learn to handle bare repositories.\nFinally, code paths that would error or degrade upon detecting a bare repository are removed or fixed.\n\nOverall, this patch should significantly improve interoperability with bare repositories.",
"base": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"oid": "525a241ddf4428fdbe2e5076262832ac4d4a21bd",
"timestamp": 1757672429
},
{
"id": "81fd9a59dfb1f8048cdd9c74be08672494330895",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "REVIEW",
"base": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"oid": "b2b132fa62232528ad402046c0bf67165f8871cb",
"timestamp": 1757680539
},
{
"id": "7287f524f4ad2ff328a217434a315fbd479f959f",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "Work in Fintan's review.",
"base": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"oid": "8de57a09857ce1fe2494283e933aed49d258b564",
"timestamp": 1757777809
},
{
"id": "37bde804d2ecf3b2f5d7dfbd169abd87f04c111c",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "Incorporate Fintan's review.",
"base": "379037956a6cb88cb826a7f57276fca4a2c6c084",
"oid": "5bff08f75044330991dc6f0e1e9e986d5441caf5",
"timestamp": 1757780842
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "5483626e-f6c1-4fc2-a1c7-628db645f432"
},
"info_url": "https://cci.rad.levitte.org//5483626e-f6c1-4fc2-a1c7-628db645f432.html"
}
Started at: 2025-09-13 18:28:11.141230+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/5483626e-f6c1-4fc2-a1c7-628db645f432/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 114 issues · 18 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout ae0c6cc8b3f71c94bde192ee99e82dc70173cb75
✓ Switched to branch patch/ae0c6cc at revision 37bde80
✓ Branch patch/ae0c6cc setup to track rad/patches/ae0c6cc8b3f71c94bde192ee99e82dc70173cb75
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 5bff08f75044330991dc6f0e1e9e986d5441caf5
HEAD is now at 5bff08f7 remote-helper: Do not assume remote name
Exit code: 0
$ git show 5bff08f75044330991dc6f0e1e9e986d5441caf5
commit 5bff08f75044330991dc6f0e1e9e986d5441caf5
Author: Lorenz Leutgeb <lorenz.leutgeb@radicle.xyz>
Date: Sat Sep 13 11:51:29 2025 +0200
remote-helper: Do not assume remote name
Avoid ending up with an upstream to a potentially non-existent remote
when pushing to an anonymous remote.
diff --git a/crates/radicle-remote-helper/src/main.rs b/crates/radicle-remote-helper/src/main.rs
index d8d1acf5..e67a2011 100644
--- a/crates/radicle-remote-helper/src/main.rs
+++ b/crates/radicle-remote-helper/src/main.rs
@@ -187,9 +187,6 @@ pub fn run(profile: radicle::Profile) -> Result<(), Error> {
}
};
- // Assume the default remote if there was no remote.
- let remote = remote.unwrap_or_else(|| (*radicle::rad::REMOTE_NAME).clone());
-
let stored = profile.storage.repository_mut(url.repo)?;
if stored.is_empty()? {
return Err(Error::RepositoryNotFound(stored.path().to_path_buf()));
diff --git a/crates/radicle-remote-helper/src/push.rs b/crates/radicle-remote-helper/src/push.rs
index 7ae177d7..c41c84d3 100644
--- a/crates/radicle-remote-helper/src/push.rs
+++ b/crates/radicle-remote-helper/src/push.rs
@@ -246,7 +246,7 @@ impl PushAction {
/// Run a git push command.
pub fn run(
mut specs: Vec<String>,
- remote: git::RefString,
+ remote: Option<git::RefString>,
url: Url,
stored: &storage::git::Repository,
profile: &Profile,
@@ -477,7 +477,7 @@ pub fn run(
/// Open a new patch.
fn patch_open<G>(
src: &git::Oid,
- upstream: &git::RefString,
+ upstream: &Option<git::RefString>,
nid: &NodeId,
working: &git::raw::Repository,
stored: &storage::git::Repository,
@@ -564,17 +564,19 @@ where
"Create reference for patch head",
)?;
- // Setup current branch so that pushing updates the patch.
- if let Some(branch) = rad::setup_patch_upstream(&patch, head, working, upstream, false)?
- {
- if let Some(name) = branch.name()? {
- if profile.hints() {
- // Remove the remote portion of the name, i.e.
- // rad/patches/deadbeef -> patches/deadbeef
- let name = name.split('/').skip(1).collect::<Vec<_>>().join("/");
- hint(format!(
- "to update, run `git push` or `git push rad -f HEAD:{name}`"
- ));
+ if let Some(upstream) = upstream {
+ // Setup current branch so that pushing updates the patch.
+ if let Some(branch) = rad::setup_patch_upstream(&patch, head, working, upstream, false)?
+ {
+ if let Some(name) = branch.name()? {
+ if profile.hints() {
+ // Remove the remote portion of the name, i.e.
+ // rad/patches/deadbeef -> patches/deadbeef
+ let name = name.split('/').skip(1).collect::<Vec<_>>().join("/");
+ hint(format!(
+ "to update, run `git push` or `git push rad -f HEAD:{name}`"
+ ));
+ }
}
}
}
Exit code: 0
shell: 'cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny warnings cargo build --all-targets --workspace cargo doc --workspace --no-deps cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 5483626e-f6c1-4fc2-a1c7-628db645f432 -v /opt/radcis/ci.rad.levitte.org/cci/state/5483626e-f6c1-4fc2-a1c7-628db645f432/s:/5483626e-f6c1-4fc2-a1c7-628db645f432/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/5483626e-f6c1-4fc2-a1c7-628db645f432/w:/5483626e-f6c1-4fc2-a1c7-628db645f432/w -w /5483626e-f6c1-4fc2-a1c7-628db645f432/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:bookworm bash /5483626e-f6c1-4fc2-a1c7-628db645f432/s/script.sh
time="2025-09-13T18:28:13+02:00" level=error msg="User-selected graph driver \"overlay\" overwritten by graph driver \"vfs\" from database - delete libpod local files (\"/opt/radcis/ci.rad.levitte.org/.local/share/containers/storage\") to resolve. May prevent use of images created by other tools"
time="2025-09-13T18:28:13+02:00" level=error msg="User-selected graph driver \"overlay\" overwritten by graph driver \"vfs\" from database - delete libpod local files (\"/opt/radcis/ci.rad.levitte.org/.local/share/containers/storage\") to resolve. May prevent use of images created by other tools"
+ cargo --version
info: syncing channel updates for '1.88-x86_64-unknown-linux-gnu'
info: latest update on 2025-06-26, rust version 1.88.0 (6b00bc388 2025-06-23)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.88.0 (873a06493 2025-05-10)
+ rustc --version
rustc 1.88.0 (6b00bc388 2025-06-23)
+ cargo fmt --check
Diff in /5483626e-f6c1-4fc2-a1c7-628db645f432/w/crates/radicle-remote-helper/src/main.rs:367:
Err(err) => Err(err.into()),
}
}
+
Diff in /5483626e-f6c1-4fc2-a1c7-628db645f432/w/crates/radicle-remote-helper/src/push.rs:566:
if let Some(upstream) = upstream {
// Setup current branch so that pushing updates the patch.
- if let Some(branch) = rad::setup_patch_upstream(&patch, head, working, upstream, false)?
+ if let Some(branch) =
+ rad::setup_patch_upstream(&patch, head, working, upstream, false)?
{
if let Some(name) = branch.name()? {
if profile.hints() {
Exit code: 1
{
"response": "finished",
"result": "failure"
}