Add last_checked_at to update config

This commit is contained in:
rubenwardy
2025-08-26 21:27:40 +01:00
parent 704c6be1c4
commit 9ec215c3d4
4 changed files with 34 additions and 7 deletions

View File

@@ -28,7 +28,7 @@ from app.logic.releases import do_create_vcs_release, LogicError, do_create_zip_
from app.models import Package, db, User, PackageState, Permission, UserRank, PackageDailyStats, LuantiRelease, \
PackageRelease, PackageUpdateTrigger, PackageUpdateConfig
from app.rediscache import has_key, set_temp_key, make_download_key
from app.tasks.importtasks import check_update_config
from app.tasks.importtasks import check_update_config_default
from app.utils import is_user_bot, is_package_page, nonempty_or_none, normalize_line_endings
from . import bp, get_package_tabs
@@ -310,7 +310,7 @@ def set_update_config(package, form):
db.session.commit()
if package.update_config.last_commit is None:
check_update_config.delay(package.id)
check_update_config_default.delay(package.id)
@bp.route("/packages/<author>/<name>/update-config/", methods=["GET", "POST"])

View File

@@ -1371,6 +1371,8 @@ class PackageUpdateConfig(db.Model):
# Set to now when an outdated notification is sent. Set to None when a release is created
outdated_at = db.Column(db.DateTime, nullable=True, default=None)
last_checked_at = db.Column(db.DateTime, nullable=True, default=None)
trigger = db.Column(db.Enum(PackageUpdateTrigger), nullable=False, default=PackageUpdateTrigger.COMMIT)
ref = db.Column(db.String(41), nullable=True, default=None)

View File

@@ -478,13 +478,11 @@ def check_update_config_impl(package):
if config.last_commit == commit:
if tag and config.last_tag != tag:
config.last_tag = tag
db.session.commit()
return
if not config.last_commit:
config.last_commit = commit
config.last_tag = tag
db.session.commit()
return
if package.releases.filter_by(commit_hash=commit).count() > 0:
@@ -503,8 +501,6 @@ def check_update_config_impl(package):
msg = "Created release {} (Git Update Detection)".format(rel.title)
add_system_audit_log(AuditSeverity.NORMAL, msg, package.get_url("packages.view"), package)
db.session.commit()
make_vcs_release.apply_async((rel.id, commit), task_id=rel.task_id)
elif config.outdated_at is None:
@@ -531,7 +527,7 @@ def check_update_config_impl(package):
config.last_commit = commit
config.last_tag = tag
db.session.commit()
def check_update_config(self, package_id):
package: Package = Package.query.get(package_id)
@@ -543,6 +539,9 @@ def check_update_config(self, package_id):
err = None
try:
check_update_config_impl(package)
package.update_config.last_checked_at = datetime.datetime.now()
db.session.commit()
except GitCommandError as e:
# This is needed to stop the backtrace being weird
err = e.stderr

View File

@@ -0,0 +1,26 @@
"""empty message
Revision ID: 1acc6e90bbac
Revises: 57b7fbc174cf
Create Date: 2025-08-26 20:23:29.086541
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = '1acc6e90bbac'
down_revision = '57b7fbc174cf'
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('package_update_config', schema=None) as batch_op:
batch_op.add_column(sa.Column('last_checked_at', sa.DateTime(), nullable=True))
def downgrade():
with op.batch_alter_table('package_update_config', schema=None) as batch_op:
batch_op.drop_column('last_checked_at')