1
0
Fork 0
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:
Lukas Winkler 2019-02-03 19:07:33 +01:00
parent 9926bd2e23
commit 9803536bbe
3 changed files with 26 additions and 6 deletions

View file

@ -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"]]

View file

@ -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)

View file

@ -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)