You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by tv...@apache.org on 2025/03/30 14:14:31 UTC
(buildstream-plugins) 02/02: sources/cargo.py: Implement collect_source_info()
This is an automated email from the ASF dual-hosted git repository.
tvb pushed a commit to branch tristan/sboms
in repository https://gitbox.apache.org/repos/asf/buildstream-plugins.git
commit 762a16deee22586f352f51e0f18cb1ac8c4ba39b
Author: Tristan van Berkom <tr...@upstairslabs.com>
AuthorDate: Sun Mar 30 18:41:52 2025 +0900
sources/cargo.py: Implement collect_source_info()
---
src/buildstream_plugins/sources/cargo.py | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/buildstream_plugins/sources/cargo.py b/src/buildstream_plugins/sources/cargo.py
index ff49cd9..dbddfe3 100644
--- a/src/buildstream_plugins/sources/cargo.py
+++ b/src/buildstream_plugins/sources/cargo.py
@@ -74,7 +74,7 @@ try:
except ImportError:
import tomli as tomllib # type: ignore
-from buildstream import Source, SourceFetcher, SourceError
+from buildstream import Source, SourceFetcher, SourceError, SourceInfo, SourceInfoMedium, SourceVersionType
from buildstream import utils
from ._utils import download_file
@@ -332,6 +332,18 @@ class Crate(SourceFetcher):
def _get_mirror_file(self, sha=None):
return os.path.join(self._get_mirror_dir(), sha or self.sha)
+ # _get_source_info()
+ #
+ # Gets the SourceInfo object for this crate
+ #
+ # Returns: The SourceInfo object
+ #
+ def _get_source_info(self):
+ url, _ = self._get_url()
+ return SourceInfo(
+ url, SourceInfoMedium.REMOTE_FILE, SourceVersionType.SHA256, self.sha, version_guess=self.version
+ )
+
class CargoSource(Source):
BST_MIN_VERSION = "2.0"
@@ -451,6 +463,9 @@ class CargoSource(Source):
def get_source_fetchers(self):
return self.crates
+ def collect_source_info(self):
+ return [crate._get_source_info() for crate in self.crates]
+
########################################################
# Private helpers #
########################################################