mirror of
https://github.com/Findus23/new-github-changelog-generator.git
synced 2024-08-27 19:52:18 +02:00
33 lines
1 KiB
Python
33 lines
1 KiB
Python
|
from datetime import timedelta, datetime
|
||
|
|
||
|
from generator.api import GithubAPI
|
||
|
from generator.config import config
|
||
|
from generator.issue import Issue
|
||
|
|
||
|
api = GithubAPI(token=config.api_token)
|
||
|
|
||
|
|
||
|
def getissueorder(issue: Issue):
|
||
|
order = 99
|
||
|
for label in issue.labels:
|
||
|
if label in config.sort_by_labels:
|
||
|
order = config.sort_by_labels.index(label)
|
||
|
return order, issue.number
|
||
|
|
||
|
|
||
|
def generate_changelog():
|
||
|
since = datetime.today() - timedelta(3)
|
||
|
issues = api.fetch_issues_since("matomo-org/matomo", since)
|
||
|
issues = list(issues) # enumerate iterable
|
||
|
for issue in issues:
|
||
|
if issue.pull_request:
|
||
|
print("PR")
|
||
|
issue.add_pr_data(api.fetch_pr_details(issue))
|
||
|
issue.compare_close_date(since)
|
||
|
issues = [i for i in issues if i.should_be_included] # remove all filtered issues
|
||
|
for issue in issues:
|
||
|
issue.add_events_data(api.fetch_events())
|
||
|
issues.sort(key=getissueorder)
|
||
|
for i in issues:
|
||
|
print("#{}: {} ({})".format(i.number, i.title, ", ".join(i.labels)))
|