Path: blob/master/update_changelog.py
1728 views
import os1import sys2import datetime3from github import Github4from dateutil.parser import parse56commit_sha = sys.argv[1]7github_token = sys.argv[2]89g = Github(github_token)1011repo = g.get_repo("veeralakrishna/DataCamp-Project-Solutions-Python")1213def get_associated_issues_prs(commit_sha):14commit = repo.get_commit(commit_sha)15commit_date = parse(commit.commit.author.date)1617issues = repo.get_issues(state="closed", since=commit_date)18prs = repo.get_pulls(state="closed", sort="created", direction="desc", base=commit_sha)1920associated_issues_prs = []2122for issue in issues:23associated_issues_prs.append(f"Issue {issue.number}: {issue.title}")2425for pr in prs:26associated_issues_prs.append(f"PR {pr.number}: {pr.title}")2728return associated_issues_prs2930def update_changelog(commit_sha):31associated_issues_prs = get_associated_issues_prs(commit_sha)3233with open("changelog.md", "a") as changelog_file:34changelog_file.write("\n\n")35changelog_file.write(f"## {datetime.datetime.now().strftime('%Y-%m-%d')}\n\n")36changelog_file.write("### Changes\n")37changelog_file.write(f"- [Commit {commit_sha[:7]}](https://github.com/veeralakrishna/DataCamp-Project-Solutions-Python/commit/{commit_sha})\n")38changelog_file.write("### Associated Issues/PRs\n")39changelog_file.write('\n'.join([f"- {item}" for item in associated_issues_prs]))4041if __name__ == "__main__":42update_changelog(commit_sha)43print("Success!")444546