mirror of
https://github.com/Findus23/new-github-changelog-generator.git
synced 2024-08-27 19:52:18 +02:00
use tag as since date
This commit is contained in:
parent
9926bd2e23
commit
9803536bbe
3 changed files with 26 additions and 6 deletions
|
@ -56,3 +56,8 @@ class GithubAPI:
|
|||
responses = self.call(issue.events_url)
|
||||
for response in responses:
|
||||
yield Event(response)
|
||||
|
||||
def get_stable_releases(self, repo):
|
||||
url = self.BASE_URL + "/repos/{}/releases".format(repo)
|
||||
r = self.s.get(url)
|
||||
return [rel for rel in r.json() if not rel["prerelease"]]
|
||||
|
|
|
@ -16,13 +16,14 @@ def main():
|
|||
since = datetime.today() - timedelta(5)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Generate changelogs from closed GitHub issues and merged PRs.')
|
||||
parser.add_argument('--since', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date,
|
||||
help='date of previous release')
|
||||
parser.add_argument('--output', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date,
|
||||
help='date of previous release')
|
||||
sincegroup = parser.add_mutually_exclusive_group()
|
||||
|
||||
sincegroup.add_argument('--since', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date,
|
||||
help='date of previous release')
|
||||
sincegroup.add_argument('--previous-version', type=str)
|
||||
group = parser.add_mutually_exclusive_group(required=True)
|
||||
group.add_argument('--html', action='store_const', const="html", dest="output", help="output as HTML")
|
||||
group.add_argument('--markdown', action='store_const', const="markdown", dest="output", help="output as markdown")
|
||||
|
||||
args = parser.parse_args()
|
||||
generate_changelog(args.since, args.output)
|
||||
generate_changelog(args.since, args.output,args.previous_version)
|
||||
|
|
|
@ -25,7 +25,21 @@ def generate_statistics(repos: List[Repo]):
|
|||
print("{num} Tickets closed by {contr} contributors".format(num=num_issues, contr=len(unique_authors)))
|
||||
|
||||
|
||||
def generate_changelog(since: datetime, output_format):
|
||||
def generate_changelog(since: datetime, output_format, previous_version):
|
||||
if not since:
|
||||
releases = api.get_stable_releases(config.repositories[0])
|
||||
if previous_version:
|
||||
version = [rel for rel in releases if rel["tag_name"] == previous_version]
|
||||
if not version:
|
||||
raise ValueError("version '{}' could not be found".format(previous_version))
|
||||
version = version[0]
|
||||
else:
|
||||
version = releases[0]
|
||||
|
||||
since = datetime.strptime(version["created_at"], "%Y-%m-%dT%H:%M:%SZ")
|
||||
print("searching for issues since '{}' released on {}".format(version["tag_name"], since))
|
||||
else:
|
||||
print("searching for issues since {}".format(since))
|
||||
repos = []
|
||||
for repo_url in config.repositories:
|
||||
repo = Repo(repo_url)
|
||||
|
|
Loading…
Reference in a new issue