This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new 6508a9b Move augmentation task code to the storage interface
6508a9b is described below
commit 6508a9b861b965c90e9ba1135a2dba2772ee166c
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu Sep 11 18:37:13 2025 +0100
Move augmentation task code to the storage interface
---
atr/routes/sbom.py | 25 +++----------------------
atr/storage/writers/sbom.py | 28 ++++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/atr/routes/sbom.py b/atr/routes/sbom.py
index 8c360db..a0f6531 100644
--- a/atr/routes/sbom.py
+++ b/atr/routes/sbom.py
@@ -17,7 +17,6 @@
from __future__ import annotations
-import datetime
import json
import pathlib
from typing import TYPE_CHECKING
@@ -35,7 +34,7 @@ import atr.models.results as results
import atr.models.sql as sql
import atr.routes as routes
import atr.sbomtool as sbomtool
-import atr.tasks as tasks
+import atr.storage as storage
import atr.template as template
import atr.util as util
@@ -66,26 +65,8 @@ async def augment(
if revision_number is None:
raise RuntimeError("No revision number found for new revision
creation")
log.info(f"Augmenting SBOM for {project_name} {version_name}
{revision_number} {rel_path}")
- # TODO: Move this to the storage interface
- sbom_task = sql.Task(
- task_type=sql.TaskType.SBOM_AUGMENT,
- task_args=tasks.sbom.FileArgs(
- project_name=project_name,
- version_name=version_name,
- revision_number=revision_number,
- file_path=str(rel_path),
- asf_uid=util.unwrap(session.uid),
- ).model_dump(),
- asf_uid=util.unwrap(session.uid),
- added=datetime.datetime.now(datetime.UTC),
- status=sql.TaskStatus.QUEUED,
- project_name=project_name,
- version_name=version_name,
- revision_number=revision_number,
- )
- data.add(sbom_task)
- await data.commit()
- await data.refresh(sbom_task)
+ async with storage.write_as_project_committee_member(project_name) as
wacm:
+ sbom_task = await wacm.sbom.augment_cyclonedx(project_name,
version_name, revision_number, rel_path)
except Exception as e:
log.exception("Error augmenting SBOM:")
diff --git a/atr/storage/writers/sbom.py b/atr/storage/writers/sbom.py
index 25323f0..8dfa97b 100644
--- a/atr/storage/writers/sbom.py
+++ b/atr/storage/writers/sbom.py
@@ -75,6 +75,34 @@ class CommitteeParticipant(FoundationCommitter):
self.__asf_uid = asf_uid
self.__committee_name = committee_name
+ async def augment_cyclonedx(
+ self,
+ project_name: str,
+ version_name: str,
+ revision_number: str,
+ rel_path: pathlib.Path,
+ ) -> sql.Task:
+ sbom_task = sql.Task(
+ task_type=sql.TaskType.SBOM_AUGMENT,
+ task_args=sbom.FileArgs(
+ project_name=project_name,
+ version_name=version_name,
+ revision_number=revision_number,
+ file_path=str(rel_path),
+ asf_uid=util.unwrap(self.__asf_uid),
+ ).model_dump(),
+ asf_uid=util.unwrap(self.__asf_uid),
+ added=datetime.datetime.now(datetime.UTC),
+ status=sql.TaskStatus.QUEUED,
+ project_name=project_name,
+ version_name=version_name,
+ revision_number=revision_number,
+ )
+ self.__data.add(sbom_task)
+ await self.__data.commit()
+ await self.__data.refresh(sbom_task)
+ return sbom_task
+
async def generate_cyclonedx(
self,
project_name: str,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]