File tree Expand file tree Collapse file tree 4 files changed +37
-13
lines changed
Expand file tree Collapse file tree 4 files changed +37
-13
lines changed Original file line number Diff line number Diff line change 33import sys
44
55from .github_activity import generate_activity_md
6+ from .git import _git_installed_check
67
78DESCRIPTION = "Generate a markdown changelog of GitHub activity within a date window."
89parser = argparse .ArgumentParser (description = DESCRIPTION )
8384
8485
8586def main ():
87+ if not _git_installed_check ():
88+ print ("git is required to run github-activity" )
89+ sys .exit (1 )
90+
8691 args = parser .parse_args (sys .argv [1 :])
8792 tags = args .tags .split ("," ) if args .tags is not None else args .tags
8893 md = generate_activity_md (
Original file line number Diff line number Diff line change 1+ import subprocess
2+
3+ def _git_installed_check ():
4+ cmd = ["git" , "--help" ]
5+ try :
6+ subprocess .check_call (cmd , stdout = subprocess .DEVNULL , stderr = subprocess .DEVNULL )
7+ return True
8+ except subprocess .CalledProcessError :
9+ return False
10+
11+
12+ def _valid_git_reference_check (git_ref ):
13+ cmd = ["git" , "rev-parse" , "--verify" , git_ref ]
14+ try :
15+ subprocess .check_call (cmd , stdout = subprocess .DEVNULL , stderr = subprocess .DEVNULL )
16+ return True
17+ except subprocess .CalledProcessError :
18+ return False
Original file line number Diff line number Diff line change 33import dateutil
44import pytz
55import requests
6+ import sys
67import urllib
78from pathlib import Path
89
10+ from .git import _valid_git_reference_check
911from .graphql import GitHubGraphQlQuery
1012from .cache import _cache_data
1113import pandas as pd
@@ -475,22 +477,21 @@ def _parse_target(target):
475477
476478
477479def _get_datetime_and_type (org , repo , datetime_or_git_ref ):
478- """Return a datetime object and bool."""
480+ """Return a datetime object and bool indicating if it is a git reference or
481+ not."""
479482
480- is_git_ref = False
483+ # Default a blank datetime_or_git_ref to current UTC time, which makes sense
484+ # to set the until flags default value.
481485 if datetime_or_git_ref is None :
482486 dt = datetime .datetime .now ().astimezone (pytz .utc )
487+ return (dt , False )
488+
489+ if _valid_git_reference_check (datetime_or_git_ref ):
490+ dt = _get_datetime_from_git_ref (org , repo , datetime_or_git_ref )
491+ return (dt , True )
483492 else :
484- try :
485- dt = dateutil .parser .parse (datetime_or_git_ref )
486- except ValueError as e :
487- if repo :
488- dt = _get_datetime_from_git_ref (org , repo , datetime_or_git_ref )
489- is_git_ref = True
490- else :
491- raise e
492-
493- return dt , is_git_ref
493+ dt = dateutil .parser .parse (datetime_or_git_ref )
494+ return (dt , False )
494495
495496
496497def _get_datetime_from_git_ref (org , repo , ref ):
Original file line number Diff line number Diff line change 1919 name = "github_activity" ,
2020 version = version ,
2121 include_package_data = True ,
22- python_requires = ">=3.4 " ,
22+ python_requires = ">=3.6 " ,
2323 author = "Chris Holdgraf" ,
2424 author_email = "choldgraf@berkeley.edu" ,
2525 url = "https://jupyter.org/" ,
You can’t perform that action at this time.
0 commit comments