Example #1
0
    def show(self, ref):
        try:
            obj = self.repository.revparse_single(ref)
        except KeyError:
            return {}
        obj_type = obj.type

        if obj_type == GIT_OBJ_COMMIT:
            return format_commit(ref, obj, self.repository)
        elif obj_type == GIT_OBJ_TAG:
            return format_tag(ref, obj, self.repository)
        elif obj_type == GIT_OBJ_TREE:
            return format_tree(ref, obj, self.repository)
        elif obj_type == GIT_OBJ_BLOB:
            return format_blob(ref, obj, self.repository)
Example #2
0
File: tag.py Project: seansay/ellen
def list_tags(repository, name_only=None):
    tags = []
    refs = repository.listall_references()
    for ref in refs:
        if ref.startswith("refs/tags/"):
            if name_only:
                tags.append(ref[10:])
                continue
            # this is a tag but maybe a lightweight tag
            tag_obj = repository.revparse_single(ref)
            if tag_obj and tag_obj.type == GIT_OBJ_COMMIT:
                # lightweight tag
                tags.append(format_lw_tag(ref, tag_obj, repository))
            elif tag_obj and tag_obj.type == GIT_OBJ_TAG:
                tags.append(format_tag(ref, tag_obj, repository))
    return tuple(tags)