Skip to content

Commit 6c0afd9

Browse files
committed
Merge branch fix/124 into devel
2 parents bdabe2e + d0717bf commit 6c0afd9

File tree

5 files changed

+24
-16
lines changed

5 files changed

+24
-16
lines changed

git_repo/services/ext/github.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ def list(self, user, _long=False):
8585
if not _long:
8686
repositories = list(["/".join([user, repo.name]) for repo in repositories])
8787
yield "{}"
88-
yield "Total repositories: {}".format(len(repositories))
88+
yield ("Total repositories: {}".format(len(repositories)),)
8989
yield from columnize(repositories)
9090
else:
91-
yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t\t{}"
91+
yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}"
9292
yield ['Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif', 'Name']
9393
for repo in repositories:
9494
try:

git_repo/services/ext/gitlab.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
import os
1616
import json, time
17+
import dateutil.parser
18+
from datetime import datetime
1719

1820
@register_target('lab', 'gitlab')
1921
class GitlabService(RepositoryService):
@@ -82,16 +84,18 @@ def list(self, user, _long=False):
8284
if not _long:
8385
repositories = list([repo.path_with_namespace for repo in repositories])
8486
yield "{}"
85-
yield "Total repositories: {}".format(len(repositories))
87+
yield ("Total repositories: {}".format(len(repositories)),)
8688
yield from columnize(repositories)
8789
else:
90+
yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}"
8891
yield ['Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif\t', 'Name']
8992
for repo in repositories:
9093
time.sleep(0.5)
91-
# if repo.last_activity_at.year < datetime.now().year:
92-
# date_fmt = "%b %d %Y"
93-
# else:
94-
# date_fmt = "%b %d %H:%M"
94+
repo_last_activity_at = dateutil.parser.parse(repo.last_activity_at)
95+
if repo_last_activity_at.year < datetime.now().year:
96+
date_fmt = "%b %d %Y"
97+
else:
98+
date_fmt = "%b %d %H:%M"
9599

96100
status = ''.join([
97101
'F' if False else ' ', # is a fork?
@@ -110,7 +114,7 @@ def list(self, user, _long=False):
110114
str(repo.star_count), # number of ♥
111115
# info
112116
'N.A.', # language
113-
repo.last_activity_at, # date
117+
repo_last_activity_at.strftime(date_fmt), # date
114118
repo.name_with_namespace, # name
115119
]
116120

git_repo/services/ext/gogs.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from requests import Session, HTTPError
1212
from urllib.parse import urlparse, urlunparse
1313
from datetime import datetime
14+
import dateutil.parser
1415
import functools
1516

1617
from git import config as git_config
@@ -152,21 +153,23 @@ def delete(self, repo, user=None):
152153
raise ResourceError("Unhandled exception: {}".format(err)) from err
153154

154155
def list(self, user, _long=False):
155-
import shutil, sys
156-
from datetime import datetime
157-
term_width = shutil.get_terminal_size((80, 20)).columns
158-
159156
repositories = self.gg.repositories(user)
160157
if user != self.username and not repositories and user not in self.orgs:
161158
raise ResourceNotFoundError("Unable to list namespace {} - only authenticated user and orgs available for listing.".format(user))
162159
if not _long:
163160
repositories = list([repo['full_name'] for repo in repositories])
164161
yield "{}"
165-
yield "Total repositories: {}".format(len(repositories))
162+
yield ("Total repositories: {}".format(len(repositories)),)
166163
yield from columnize(repositories)
167164
else:
165+
yield "{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}"
168166
yield ['Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif\t', 'Name']
169167
for repo in repositories:
168+
repo_updated_at = dateutil.parser.parse(repo['updated_at'])
169+
if repo_updated_at.year < datetime.now().year:
170+
date_fmt = "%b %d %Y"
171+
else:
172+
date_fmt = "%b %d %H:%M"
170173
status = ''.join([
171174
'F' if repo['fork'] else ' ', # is a fork?
172175
'P' if repo['private'] else ' ', # is private?
@@ -188,7 +191,7 @@ def list(self, user, _long=False):
188191
str(repo.get('stars_count') or 0), # number of ♥
189192
# info
190193
repo.get('language') or '?', # language
191-
repo['updated_at'], # date
194+
repo_updated_at.strftime(date_fmt), # date
192195
repo['full_name'], # name
193196
]
194197

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
docopt
22
progress
3+
python-dateutil
34
GitPython>=2.1.0
45
uritemplate.py==2.0.0
56
github3.py==0.9.5

tests/integration/test_github.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,12 +354,12 @@ def test_33_open(self):
354354

355355
def test_34_list__short(self, caplog):
356356
projects = self.action_list(namespace='git-repo-test')
357-
assert projects == ['{}', 'Total repositories: 1', ['git-repo-test/git-repo']]
357+
assert projects == ['{}', ('Total repositories: 1',), ['git-repo-test/git-repo']]
358358
assert 'GET https://api.github.com/users/git-repo-test/repos' in caplog.text
359359

360360
def test_34_list__long(self, caplog):
361361
projects = self.action_list(namespace='git-repo-test', _long=True)
362-
assert projects == ['{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t\t{}',
362+
assert projects == ['{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{:12}\t{}',
363363
['Status', 'Commits', 'Reqs', 'Issues', 'Forks', 'Coders', 'Watch', 'Likes', 'Lang', 'Modif', 'Name'],
364364
['F ', '92', '0', '0', '0', '1', '0', '0', 'Python', 'Mar 30 2016', 'git-repo-test/git-repo']]
365365
assert 'GET https://api.github.com/users/git-repo-test/repos' in caplog.text

0 commit comments

Comments
 (0)