def test_latest_release(): r1 = GithubRelease(tag_name='', url='', created_at='', tarball_url='', git_tag=GitTag(name='0.0.1', commit_sha='123'), project=flexmock(GitProject), raw_release=flexmock(title='0.0.1')) r2 = GithubRelease(tag_name='', url='', created_at='', tarball_url='', git_tag=GitTag(name='0.0.2', commit_sha='123'), project=flexmock(GitProject), raw_release=flexmock(title='0.0.2')) mocked_releases = [r1, r2] git = flexmock(Git) c = flexmock(configuration) c.project = flexmock(get_releases=lambda: mocked_releases) github = Github(c, git) obtained_release = github.latest_release() assert obtained_release == "0.0.2" mocked_releases = [] c.project = flexmock(get_releases=lambda: mocked_releases) github = Github(c, git) obtained_release = github.latest_release() assert obtained_release == "0.0.0"
def test_latest_release(): mocked_releases = [ Release(title='0.0.1', body='', tag_name='', url='', created_at='', tarball_url='', git_tag=GitTag(name='0.0.1', commit_sha='123')), Release(title='0.0.2', body='', tag_name='', url='', created_at='', tarball_url='', git_tag=GitTag(name='0.0.2', commit_sha='123')) ] git = flexmock(Git) c = flexmock(configuration) c.project = flexmock(get_releases=lambda: mocked_releases) github = Github(c, git) obtained_release = github.latest_release() assert obtained_release == '0.0.2' mocked_releases = [] c.project = flexmock(get_releases=lambda: mocked_releases) github = Github(c, git) obtained_release = github.latest_release() assert obtained_release == '0.0.0'
def get_tags(self) -> List[GitTag]: response = self._call_project_api("git", "tags", params={"with_commits": True}) return [ GitTag(name=n, commit_sha=c) for n, c in response["tags"].items() ]
def get_tags_dict(self) -> Dict[str, GitTag]: response = self._call_project_api("git", "tags", params={"with_commits": True}) return { n: GitTag(name=n, commit_sha=c) for n, c in response["tags"].items() }
def get_tag_from_tag_name(self, tag_name: str) -> Optional[GitTag]: """ Get a tag based on a tag name. Args: tag_name: Name of the tag. Returns: GitTag associated with the given tag name or `None`. """ all_tags = self.github_repo.get_tags() for tag in all_tags: if tag.name == tag_name: return GitTag(name=tag.name, commit_sha=tag.commit.sha) return None
def create( project: "ogr_pagure.PagureProject", tag: str, name: str, message: str, ref: Optional[str] = None, ) -> "Release": payload = { "tagname": tag, "commit_hash": ref, } if message: payload["message"] = message response = project._call_project_api("git", "tags", data=payload, method="POST") if not response["tag_created"]: raise PagureAPIException("Release has not been created") return PagureRelease(GitTag(tag, ref), project)
def get_tags(self) -> List["GitTag"]: return [ GitTag(tag.name, tag.commit.sha) for tag in self.github_repo.get_tags() ]
def get_tag_from_tag_name(self, tag_name: str) -> Optional[GitTag]: all_tags = self.github_repo.get_tags() for tag in all_tags: if tag.name == tag_name: return GitTag(name=tag.name, commit_sha=tag.commit.sha) return None
def _git_tag_from_tag_name(self, tag_name: str) -> GitTag: git_tag = self.gitlab_repo.tags.get(tag_name) return GitTag(name=git_tag.name, commit_sha=git_tag.commit["id"])
def get_tags(self) -> List["GitTag"]: tags = self.gitlab_repo.tags.list() return [GitTag(tag.name, tag.commit["id"]) for tag in tags]