Skip to content

Commit

Permalink
Use project or group avatar for GitLab repos
Browse files Browse the repository at this point in the history
  • Loading branch information
hluk committed Oct 26, 2022
1 parent 750e9e5 commit 735ca86
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions reviewrot/gitlabstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

log = logging.getLogger(__name__)

DEFAULT_IMAGE = "https://docs.gitlab.com/assets/images/gitlab-logo.svg"


class GitlabService(BaseService):
"""
Expand Down Expand Up @@ -74,12 +76,16 @@ def request_reviews(
raise Exception(
"Project %s not found for user %s" % (repo_name, user_name)
)

group = gl.groups.get(project.namespace["id"])

# get merge requests for specified username and project name
res = self.get_reviews(
uname=user_name,
project=project,
age=age,
show_last_comment=show_last_comment,
image=project.avatar_url or group.avatar_url or DEFAULT_IMAGE,
)
# extend in case of a non empty result
if res:
Expand All @@ -102,14 +108,19 @@ def request_reviews(
for group_project in group_projects:

project = gl.projects.get(group_project.id)
res = self.get_reviews(uname=user_name, project=project, age=age)
res = self.get_reviews(
uname=user_name,
project=project,
age=age,
image=project.avatar_url or group.avatar_url or DEFAULT_IMAGE,
)

# extend in case of a non empty result
if res:
response.extend(res)
return response

def get_reviews(self, uname, project, age=None, show_last_comment=None):
def get_reviews(self, uname, project, age=None, show_last_comment=None, image=None):
"""
Fetches merge requests for specified username(groupname) and repo(project) name.
Expand Down Expand Up @@ -186,16 +197,14 @@ def get_reviews(self, uname, project, age=None, show_last_comment=None):
)
continue

res = GitlabReview(
res = BaseReview(
user=mr.author["username"],
title=mr.title,
url=mr.web_url,
time=mr_date,
updated_time=mr_updated_date,
comments=mr.user_notes_count,
# XXX - I don't know how to find gitlab avatars
# for now. Can we figure this out later?
image=GitlabReview.logo,
image=image,
last_comment=last_comment,
project_name=project.name,
project_url=project.web_url,
Expand Down Expand Up @@ -225,11 +234,3 @@ def get_last_comment(self, mr):
note.created_at, "%Y-%m-%dT%H:%M:%S.%fZ"
),
)


class GitlabReview(BaseReview):
"""TODO: docstring goes here."""

# XXX - Here just until we figure out how to do gitlab avatars.
logo = "https://docs.gitlab.com/assets/images/gitlab-logo.svg"
pass

0 comments on commit 735ca86

Please sign in to comment.