Commit Graph

864 Commits

Author SHA1 Message Date
e6275de4ed fix: handle class overrides for retry polices correctly
Previous implementation didn't work as intended because there was still
override in init. Current implementation instead of playing with
guessing separates default and instance setttings. Also update test
cases to handle this scenario correctly
2026-02-21 12:40:11 +02:00
4d009cba6d Release 2.20.0rc3 2.20.0rc3 2026-02-20 20:56:05 +02:00
f6defbf90d fix: rollback samesite option to Lax, because of broken OAuth 2026-02-20 20:54:37 +02:00
c4fefa6071 Release 2.20.0rc2 2.20.0rc2 2026-02-20 16:30:37 +02:00
b0f1828ae7 feat: add retry policy 2026-02-20 16:24:14 +02:00
dec025b45a feat: raise OptionError on missing OAuth provider class instead of generic AttributeError 2026-02-19 10:19:03 +02:00
89008e5350 fix: use context manager for selector and smtp session 2026-02-19 10:19:03 +02:00
422196d413 fix: force data filter for tar archive extraction
(python3.14 default anyway)
2026-02-19 10:19:03 +02:00
6fe2eade26 feat: (more) secure cookies 2026-02-19 10:19:03 +02:00
5266f54257 fix: speedup table reload by updating only changed statuses
it has been found that on big (>100) repos it starts lagging on reload.
This commit adds guard to avoid updating rows whose package statuses
were not changed
2026-02-19 10:19:03 +02:00
bbf9e38fda Release 2.20.0rc1 2026-02-18 13:34:08 +02:00
ba80a91d95 feat: implement CSRF protection 2026-02-18 13:34:08 +02:00
536d040a6a feat: handle only unknownpackageerror on aur load 2026-02-18 13:34:08 +02:00
bed8752f3a fix: filter logs by repository (twice) before rotation 2026-02-18 13:34:05 +02:00
4093ca8986 fix: do not clear queue on queue fetch failures 2026-02-18 13:34:03 +02:00
f027155885 docs: correct docstring for list_flatmap method 2026-02-18 13:34:03 +02:00
443d4ae667 fix: correct vcs definition for cvs packages 2026-02-18 13:34:00 +02:00
c8f7fa8c51 fix: load gitremote triggers configuration schema from non-standard
paths
2026-02-18 13:33:57 +02:00
93c36fb429 docs: update documentation for the lasts archive feature 2026-02-16 22:07:34 +02:00
2d6d42f969 feat: archive package tree implementation (#153)
* store built packages in archive tree instead of repository

* write tests to support new changes

* implement atomic_move method, move files only with lock

* use generic packages tree for all repos

* lookup through archive packages before build

* add archive trigger

* add archive trigger

* regenerate docs

* gpg loader fix

* support requires repostory flag

* drop excess REQUIRES_REPOSITORY

* simplify symlionk creation

* remove generators

* fix sttyle

* add separate function for symlinks creation

* fix rebase

* add note about slicing

* smol refactoring of archive_tree class

* remove duplicate code

* fix typos

* few review fixes

* monor fixes and typos

* clean empty directories

* remove side effect from getter

* drop recursive remove

* ensure_exists now accepts only argument

* add package like guard to symlinks fix

* speedup archive_lookup processing by iterrupting cycle

* remove custom filelock

* fix naming

* remove remove flag from repo

* review fixes

* restore wrapper around filelock

* extract repository explorer to separate class

* docs update

* fix ide findings
2026-02-16 00:12:51 +02:00
6a2454548d refactor: drop some methods from package class into separated wrappers 2026-02-11 03:05:49 +02:00
389bad6725 fix: use effective uid instead of uid 2026-02-03 16:38:13 +02:00
5738b8b911 fix: rewrite preserver_owner method complitely
Previous implementation was somewhat working in the most) scenarios, but
was super slow to handle permissions. However, it is actually very
limited operations in which the application can do anything, so it is
much easier to just drop privileged user to normal one
2026-02-03 15:27:19 +02:00
5ac2e3de19 fix: handle permissionerror during walking over tree
Previously it tried to look into 700 directories (e.g. .gnupg) which
breaks running as non-ahriman user
2026-02-02 22:16:15 +02:00
799dc73d8a feat: update package status to success in case if package is up-to-date 2026-01-26 01:56:30 +02:00
4e79cbf71a fix: fallback to package name for missing bases in archive
package zoom is being generated without base, leading to None there

Closes #155
2026-01-22 16:34:19 +02:00
4fa5d55317 type: replace generator return type with iterator 2026-01-15 15:22:03 +02:00
a7fa3b90e4 type: fix typing in some modules 2026-01-14 14:28:31 +02:00
ce07cda8ab fix: pass underlying exception on extensionerror 2026-01-14 14:06:34 +02:00
00c4f32294 fix: correct exception type on repository id comparison 2026-01-14 13:59:07 +02:00
49cf91ea52 chore: copyright update 2026-01-08 02:50:37 +02:00
4a8430dc67 build: allow to rebuild images manually 2026-01-08 02:45:31 +02:00
46af782db2 build: drop shtab wrapper after their release 2025-11-18 20:47:20 +02:00
6443e02352 type: use as keyword in case match 2025-10-26 09:36:54 +02:00
999ad39d6f feat: add trigger loader guard 2025-09-17 14:45:09 +03:00
dfab5f56b2 feat: use atexit instead of del for triggers 2025-08-11 14:53:10 +03:00
10798b9ba3 fix: correctly process trigger repo specific settings in validator (see #154) 2025-08-01 16:53:15 +03:00
358e3dc4d2 feat: expose repository name and architecure in configuration if available
In some cases there are reference to current repository settings. In
order to handle it correctly two ro options have been added

Related to #154
2025-07-31 14:14:22 +03:00
c13cd029bc feat: fully readable configuration from environment 2025-07-23 14:49:38 +03:00
ae32cc8fbb type: use custom comparable for comparable functions 2025-07-15 21:20:49 +03:00
dff5b775a9 refactor: move logs rotation to separated trigger which is enabled by default
Previous solution, well, worked kinda fine-ish, though we have much
better mechanisms to do so
2025-07-15 11:26:00 +03:00
db3f20546e fix: do not update datalist if search substring hasn't changed 2025-07-14 21:30:27 +03:00
53368468a4 fix: block autoupdate on any modal opened 2025-07-14 21:12:33 +03:00
228c2cce51 style: use parebtgeses-less exceptions in side effects (tests only) 2025-07-14 20:33:54 +03:00
f5aec4e5c1 fix: fix search result sorting based if there is exact match or
starts with (closes #152)
2025-07-14 01:12:27 +03:00
9217c8c759 feat: add reload command and api endpoints 2025-07-13 15:35:49 +03:00
6392520e06 style: reorder schemas properties to alphabet order 2025-07-13 15:34:22 +03:00
c6306631e6 fix: careful handling of file permissions during initialization
It has been found that during cold start (e.g. in docker container),
some permissions are invalid. In order to handle that, some operations
are not guarded with RepositoryPaths.preserve_root guard

In addition, it has been also found that in some cases (e.g. web server
start) migrations are performed on empty repository identifier which may
lead to wrong data (see also 435375721d),
as well as some unexpected results during database operations. In order
to handle that, now all watcher instances have their own databases (and
configurations)
2025-07-11 17:13:37 +03:00
97b906c536 revert: type: fix broken types in dependencies
This reverts commit bd770aac2f.
2025-07-11 03:10:32 +03:00
435375721d fix: fix migrations on empty repositories 2025-07-08 16:46:34 +03:00