summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2017-07-18 11:03:05 +0200
committerJürg Billeter <j@bitron.ch>2017-07-20 07:24:56 +0200
commitd31d1759defb56db94541e3a8adcd297e81ad7e5 (patch)
treed490fbf1b915042500ec186ffd1e8353745c915d
parent6eb477ae2d3f1df8b18674ed8b795e788e11abf2 (diff)
downloadbuildstream-d31d1759defb56db94541e3a8adcd297e81ad7e5.tar.gz
_ostree.py: Add list_remote_refs()
-rw-r--r--buildstream/_ostree.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/buildstream/_ostree.py b/buildstream/_ostree.py
index 3bcc0e828..80c28af54 100644
--- a/buildstream/_ostree.py
+++ b/buildstream/_ostree.py
@@ -357,3 +357,22 @@ def configure_remote(repo, remote, url, key_url=None):
repo.remote_gpg_import(remote, stream, None, 0, None)
except GLib.GError as e:
raise OSTreeError("Failed to add gpg key from url '{}': {}".format(key_url, e.message)) from e
+
+
+# list_remote_refs():
+#
+# Fetch list of refs from a remote.
+#
+# Args:
+# repo (OSTree.Repo): The repo
+# remote (str): An optional remote name, defaults to 'origin'
+#
+# Returns:
+# (dict): A dict of refs to checksums.
+#
+def list_remote_refs(repo, remote="origin"):
+ try:
+ _, refs = repo.remote_list_refs(remote)
+ return refs
+ except GLib.GError as e:
+ raise OSTreeError("Failed to fetch remote refs from '{}': {}".format(remote, e.message)) from e