Use git log as fallback for release notes

Part of #545
This commit is contained in:
rubenwardy
2024-06-30 17:23:05 +01:00
parent c21337b9ff
commit 4ad8e3605b
3 changed files with 45 additions and 5 deletions

View File

@@ -35,7 +35,7 @@ from app.models import AuditSeverity, db, NotificationType, PackageRelease, Meta
from app.tasks import celery, TaskError
from app.utils import random_string, post_bot_message, add_system_notification, add_system_audit_log, \
get_games_from_list, add_audit_log
from app.utils.git import clone_repo, get_latest_tag, get_latest_commit, get_temp_dir
from app.utils.git import clone_repo, get_latest_tag, get_latest_commit, get_temp_dir, get_release_notes
from .minetestcheck import build_tree, MinetestCheckError, ContentType, PackageTreeNode
from .webhooktasks import post_discord_webhook
from app import app
@@ -197,6 +197,12 @@ def post_release_check_update(self, release: PackageRelease, path):
except IOError:
pass
# Build release notes from git log
if release.commit_hash and release.release_notes is None:
previous_release = package.releases.filter(PackageRelease.id != release.id).first()
if previous_release and previous_release.commit_hash:
release.release_notes = get_release_notes(package.repo, previous_release.commit_hash, release.commit_hash)
# Update game support
if package.type == PackageType.MOD or package.type == PackageType.TXP:
game_is_supported = {}
@@ -335,6 +341,7 @@ def make_vcs_release(self, id, branch):
raise TaskError("No package attached to release")
with clone_repo(release.package.repo, ref=branch, recursive=True) as repo:
release.commit_hash = repo.head.object.hexsha
post_release_check_update(self, release, repo.working_tree_dir)
filename = random_string(10) + ".zip"
@@ -352,7 +359,6 @@ def make_vcs_release(self, id, branch):
release.url = "/uploads/" + filename
release.task_id = None
release.commit_hash = repo.head.object.hexsha
release.approve(release.package.author)
db.session.commit()