fix: validate branch inputs (empty names, negative versions)

This commit is contained in:
Brendan Clement
2026-06-03 09:57:45 -07:00
parent 1ee490d125
commit 735a7ce6fe
4 changed files with 83 additions and 1 deletions

View File

@@ -1179,7 +1179,16 @@ impl Branches {
// "main" and None are two spellings of the root branch; normalize so
// from_ref = "main" behaves identically to the default.
let from_ref = from_ref.filter(|b| b != "main");
let from = Ref::Version(from_ref, from_version.map(|v| v as u64));
// Reject a negative version up front; `as u64` would silently wrap it
// into a huge version number.
let from_version = from_version
.map(|v| {
u64::try_from(v).map_err(|_| {
napi::Error::from_reason("from_version must be a non-negative integer")
})
})
.transpose()?;
let from = Ref::Version(from_ref, from_version);
let table = self
.inner
.create_branch(&name, from)