outstream.write("%s\n" % entry.commit.id)
-def tag(repo, tag, author=None, message=None, annotated=False, objectish="HEAD"):
+def tag(repo, tag, author=None, message=None, annotated=False,
+ objectish="HEAD", tag_time=None, tag_timezone=None):
"""Creates a tag in git via dulwich calls:
:param repo: Path to repository
:param message: tag message (optional)
:param annotated: whether to create an annotated tag
:param objectish: object the tag should point at, defaults to HEAD
+ :param tag_time: Optional time for annotated tag
+ :param tag_timezone: Optional timezone for annotated tag
"""
r = open_repo(repo)
tag_obj.message = message
tag_obj.name = tag
tag_obj.object = (type(object), object.id)
- tag_obj.tag_time = int(time.time())
- tag_obj.tag_timezone = parse_timezone('-0200')[0]
+ tag_obj.tag_time = tag_time
+ if tag_time is None:
+ tag_time = int(time.time())
+ if tag_timezone is None:
+ # TODO(jelmer) Use current user timezone rather than UTC
+ tag_timezone = 0
+ tag_obj.tag_timezone = tag_timezone
r.object_store.add_object(tag_obj)
tag_id = tag_obj.id
else: