aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gbp/git/repository.py20
-rw-r--r--tests/test_GitRepository.py3
2 files changed, 22 insertions, 1 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index e8692c0d..92cd40d4 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -21,7 +21,7 @@ import subprocess
import os.path
import gbp.log as log
-from gbp.command_wrappers import (GitCommand, copy_from)
+from gbp.command_wrappers import (GitCommand, CommandExecFailed, copy_from)
from gbp.errors import GbpError
from gbp.git.modifier import GitModifier
from gbp.git.commit import GitCommit
@@ -455,6 +455,24 @@ class GitRepository(object):
"""
args = [ '-l', pattern ] if pattern else []
return [ line.strip() for line in self.__git_getoutput('tag', args)[0] ]
+
+ def verify_tag(self, tag):
+ """
+ Verify a signed tag
+
+ @param tag: the tag's name
+ @type tag: C{str}
+ @return: Whether the signature on the tag could be verified
+ @rtype: C{bool}
+ """
+ args = GitArgs('-v', tag)
+
+ try:
+ self._git_command('tag', args.args)
+ except CommandExecFailed:
+ return False
+ return True
+
#}
def force_head(self, commit, hard=False):
"""
diff --git a/tests/test_GitRepository.py b/tests/test_GitRepository.py
index 4f581e5e..01b96da8 100644
--- a/tests/test_GitRepository.py
+++ b/tests/test_GitRepository.py
@@ -159,6 +159,7 @@ def test_tag():
Methods tested:
- L{gbp.git.GitRepository.create_tag}
+ - L{gbp.git.GitRepository.verify_tag}
- L{gbp.git.GitRepository.has_tag}
- L{gbp.git.GitRepository.get_tags}
@@ -172,6 +173,8 @@ def test_tag():
>>> repo.create_tag("tag2", msg="foo")
>>> repo.has_tag("tag2")
True
+ >>> repo.verify_tag("tag2")
+ False
>>> repo.get_tags()
['tag', 'tag2']
>>> repo.tags