From d9f6f69f0053b0f5a2c5f362786090ba815cb340 Mon Sep 17 00:00:00 2001 From: "Ian H. Pittwood" Date: Fri, 6 Feb 2026 11:09:04 -0700 Subject: [PATCH] Fix NoneType error when OS codename is None in dgoss environment Handle cases where buildOS.codename is None by: - Defaulting IMAGE_OS_CODENAME to empty string when codename is None - Skipping environment variables with None values in docker run command Co-Authored-By: Claude Opus 4.6 --- posit-bakery/posit_bakery/image/goss/dgoss.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/posit-bakery/posit_bakery/image/goss/dgoss.py b/posit-bakery/posit_bakery/image/goss/dgoss.py index 200d9655..42b1dd4f 100644 --- a/posit-bakery/posit_bakery/image/goss/dgoss.py +++ b/posit-bakery/posit_bakery/image/goss/dgoss.py @@ -92,7 +92,7 @@ def image_environment(self) -> dict[str, str]: if self.image_target.image_os: e["IMAGE_OS"] = self.image_target.image_os.name e["IMAGE_OS_NAME"] = self.image_target.image_os.buildOS.name - e["IMAGE_OS_CODENAME"] = self.image_target.image_os.buildOS.codename + e["IMAGE_OS_CODENAME"] = self.image_target.image_os.buildOS.codename or "" e["IMAGE_OS_FAMILY"] = self.image_target.image_os.buildOS.family.value e["IMAGE_OS_VERSION"] = self.image_target.image_os.buildOS.version if self.image_target.build_args: @@ -151,8 +151,9 @@ def command(self) -> list[str]: for mount in self.volume_mounts: cmd.extend(["-v", f"{mount[0]}:{mount[1]}"]) for env_var, value in self.image_environment.items(): - env_value = re.sub(r"([\"\'\\$`!*?&#()|<>;\[\]{}\s])", r"\\\1", value) - cmd.extend(["-e", f"{env_var}={env_value}"]) + if value is not None: + env_value = re.sub(r"([\"\'\\$`!*?&#()|<>;\[\]{}\s])", r"\\\1", value) + cmd.extend(["-e", f"{env_var}={env_value}"]) cmd.append("--init") if self.runtime_options: # TODO: We may want to validate this to ensure options are not duplicated.