diff --git a/.github/workflow_data/discord.py b/.github/workflow_data/discord.py index eb6dcbd8b..a438d1544 100644 --- a/.github/workflow_data/discord.py +++ b/.github/workflow_data/discord.py @@ -10,91 +10,139 @@ if __name__ == "__main__": event = json.load(f) webhook = "DEV_DISCORD_WEBHOOK" - title = "" - desc = "" - url = "" + title = desc = url = "" color = 0 fields = [] match os.environ["GITHUB_EVENT_NAME"]: case "push": - push = event - count = len(push['commits']) - branch = push["ref"].removeprefix("refs/heads/") - change = "Force Push" if push["forced"] and not count else f"{count} New Commit{'' if count == 1 else 's'}" - desc = f"[**{change}**]({push['compare']}) on [{branch}]({push['repository']['html_url']}/tree/{branch}) branch\n" - for commit in push["commits"][:10]: - msg = commit['message'].splitlines()[0] - msg = msg[:50] + ("..." if len(msg) > 50 else "") - desc += f"\n[`{commit['id'][:7]}`]({commit['url']}): {msg} - [__{commit['author']['username']}__](https://github.com/{commit['author']['username']})" - if count > 10: - desc += f"\n+ {count - 10} more commits" - url = push["compare"] - color = 16711680 if push["forced"] else 3669797 + count = len(event["commits"]) + branch = event["ref"].removeprefix("refs/heads/") + change = ( + "Force Push" + if event["forced"] and not count + else f"{count} New Commit{'' if count == 1 else 's'}" + ) + desc = f"[**{change}**]({event['compare']}) | [{branch}]({event['repository']['html_url']}/tree/{branch})\n" + for commit in event["commits"]: + desc += f"\n[`{commit['id'][:7]}`]({commit['url']}): {commit['message'].splitlines()[0]} - [__{commit['author']['username']}__](https://github.com/{commit['author']['username']})" + url = event["compare"] + color = 16723712 if event["forced"] else 3669797 case "pull_request": pr = event["pull_request"] url = pr["html_url"] - branch = pr['base']['ref'] + ('' if pr['base']['full_name'] != pr['head']['full_name'] else f" <- {pr['head']['ref']}") - name = pr['title'][:50] + ("..." if len(pr['title']) > 50 else "") + branch = pr["base"]["ref"] + ( + "" + if pr["base"]["full_name"] != pr["head"]["full_name"] + else f" <- {pr['head']['ref']}" + ) + name = pr["title"][:50] + ("..." if len(pr["title"]) > 50 else "") title = f"Pull Request {event['action'].title()} ({branch}): {name}" - if event['action'] == "closed": - color = 16711680 - else: - color = 3669797 - desc = pr["body"][:2045] + ("..." if len(pr["body"]) > 2045 else "") - fields.append({ - "name": "Files", - "value": str(pr["changed_files"]), - "inline": True - }) - fields.append({ - "name": "Added", - "value": "+" + str(pr["additions"]), - "inline": True - }) - fields.append({ - "name": "Removed", - "value": "-" + str(pr["deletions"]), - "inline": True - }) + match event["action"]: + case "opened": + max_len = 2045 + desc = event["body"][:max_len] + ( + "..." if len(event["body"]) > max_len else "" + ) + color = 3669797 - # case "release": - # webhook = "DEV_DISCORD_WEBHOOK" - # count = len(event['commits']) - # branch = event["ref"].removeprefix("refs/heads/") - # change = "Force Push" if event["forced"] and not count else f"{count} New Commit{'' if count == 1 else 's'}" - # desc += f"[**{change}**]({event['compare']}) on [{branch}]({event['repository']['html_url']}/tree/{branch}) branch\n" - # for commit in event["commits"]: - # desc += f"\n[`{commit['id'][:7]}`]({commit['url']}): {commit['message'].splitlines()[0]} - [__{commit['author']['username']}__](https://github.com/{commit['author']['username']})" - # url = event["compare"] - # color = 16711680 if event["forced"] else 3669797 + fields.append( + { + "name": "Changed Files:", + "value": str(pr["changed_files"]), + "inline": True, + } + ) + fields.append( + { + "name": "Added:", + "value": "+" + str(pr["additions"]), + "inline": True, + } + ) + fields.append( + { + "name": "Removed:", + "value": "-" + str(pr["deletions"]), + "inline": True, + } + ) + + case "closed": + color = 16723712 + case "reopened": + color = 16751872 + case _: + sys.exit(1) + + case "release": + match event["action"]: + case "published": + webhook = "DEV_DISCORD_WEBHOOK" + title = f"New Release published: {event['name']}" + desc += f"Changelog:" + + changelog = "".join( + event["body"] + .split("Changelog")[1] + .split("