Commit Graph

417 Commits

Author SHA1 Message Date
arcanis 2cd4ef5e86 refactor: separate package_archives method from trigger 2026-03-11 13:36:59 +02:00
arcanis 998ed48dde feat: add pkgbuild subscommands 2026-03-11 13:31:19 +02:00
arcanis 021d88dc4c feat: store and show pkgbuild (implements #157) 2026-03-11 01:05:06 +02:00
arcanis a809a4b67f feat: support request-id header 2026-03-08 02:51:30 +02:00
arcanis 10661f3127 fix: catch some StopIteration exceptions 2026-03-06 17:04:19 +02:00
arcanis a05eab9042 feat: brand-new interface (#158)
This was initally generated by ai, but later has been heavily edited.
The reason why it has been implemented is that there are plans to
implement more features to ui, but it becomes hard to add new features
to plain js, so I decided to rewrite it in typescript.

Yet because it is still ai slop, it is still possible to enable old
interface via configuration, even though new interface is turned on by
default to get feedback
2026-03-06 00:59:10 +02:00
arcanis db46147f0d fix: mount archive to chroot
while file:// repository is automatically mounted by devtools, it
doesn't mount any directory which contains source of symlinks

This commit adds implicit mount of the archive directory (ro) into
chroot
2026-03-03 15:50:21 +02:00
arcanis 49ebbc34fa fix: do not update package status if it is unchanged
In order to prevent timestamp bumps, filter by status is added
2026-02-24 15:33:06 +02:00
arcanis 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
arcanis b0f1828ae7 feat: add retry policy 2026-02-20 16:24:14 +02:00
arcanis 89008e5350 fix: use context manager for selector and smtp session 2026-02-19 10:19:03 +02:00
arcanis 422196d413 fix: force data filter for tar archive extraction
(python3.14 default anyway)
2026-02-19 10:19:03 +02:00
arcanis 6fe2eade26 feat: (more) secure cookies 2026-02-19 10:19:03 +02:00
arcanis ba80a91d95 feat: implement CSRF protection 2026-02-18 13:34:08 +02:00
arcanis 536d040a6a feat: handle only unknownpackageerror on aur load 2026-02-18 13:34:08 +02:00
arcanis 4093ca8986 fix: do not clear queue on queue fetch failures 2026-02-18 13:34:03 +02:00
arcanis c8f7fa8c51 fix: load gitremote triggers configuration schema from non-standard
paths
2026-02-18 13:33:57 +02:00
arcanis 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
arcanis 6a2454548d refactor: drop some methods from package class into separated wrappers 2026-02-11 03:05:49 +02:00
arcanis 389bad6725 fix: use effective uid instead of uid 2026-02-03 16:38:13 +02:00
arcanis 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
arcanis 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
arcanis 799dc73d8a feat: update package status to success in case if package is up-to-date 2026-01-26 01:56:30 +02:00
arcanis 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
arcanis 00c4f32294 fix: correct exception type on repository id comparison 2026-01-14 13:59:07 +02:00
arcanis 999ad39d6f feat: add trigger loader guard 2025-09-17 14:45:09 +03:00
arcanis dfab5f56b2 feat: use atexit instead of del for triggers 2025-08-11 14:53:10 +03:00
arcanis 10798b9ba3 fix: correctly process trigger repo specific settings in validator (see #154) 2025-08-01 16:53:15 +03:00
arcanis 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
arcanis c13cd029bc feat: fully readable configuration from environment 2025-07-23 14:49:38 +03:00
arcanis 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
arcanis 228c2cce51 style: use parebtgeses-less exceptions in side effects (tests only) 2025-07-14 20:33:54 +03:00
arcanis 9217c8c759 feat: add reload command and api endpoints 2025-07-13 15:35:49 +03:00
arcanis 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
arcanis 435375721d fix: fix migrations on empty repositories 2025-07-08 16:46:34 +03:00
arcanis 4c5caba6b7 fix: trim provides/depends versions and lookup provides through pkgname
(#150)

Current implementation did it in wrong way. First of all, there was a
lookup through pkgbase instead of pkgname, which lead to errors, because
aur api doesn't allow to search by pkgbase (as well as provides is
basically pkgname instead)

It also was found that dependencies resolution lookup has been performed
by using raw packages array, which can include versions, descriptions
etc
2025-07-08 16:22:41 +03:00
arcanis f2ea76aab9 feat: add silent logs reload 2025-07-07 17:02:08 +03:00
arcanis fdc27a9ebf feat: filter out obvious duplicates from multisearch 2025-07-01 09:59:29 +03:00
arcanis 256376df85 feat: add autorefresh button to the main page (#149)
* also add configuration options and change behaviour accordingly
2025-07-01 03:22:01 +03:00
arcanis 939a94d889 feat: add autoupdate button to package info (#148) 2025-06-29 22:22:54 +03:00
arcanis f41e44895d fix: support provides in aur (#146)
* support provides in aur

* process provides during tree resolution

* stylish
2025-06-28 22:39:54 +03:00
arcanis 765bbf486f feat: port to new AUR API 2025-06-28 22:07:59 +03:00
arcanis a3c54afb82 fix: process unicode errors in command execution 2025-06-28 20:26:47 +03:00
arcanis 066d1b1dde refactor: rework few tests and build system
This commit includes the following changes
* Bump github actions
* Update tests github action to check documentation and streamline
  process
* Update test cases to use temporary directories as roots
* Simplify tox.ini
2025-06-20 17:04:57 +03:00
arcanis 75682bc7be feat: add support of openmetrics (#144)
* feat: add openmetrics support & endpoint

* add support of named resources

* update docstrings

* generate docs

* add another test for http api
2025-06-18 14:42:09 +03:00
arcanis 995b396360 bug: fix invalid logs rotation 2025-06-16 16:36:34 +03:00
arcanis d4eb55ef95 bug: correctly close sqlite3 connection
After the last updates, tests produce warnings that the connection to
database is leaked, which appears to be correct. This commit changes
behaviour to closing connection explicitly via contextlib
2025-06-16 15:24:57 +03:00
arcanis 09350e88ab style: fix few typos 2025-06-14 23:34:53 +03:00
arcanis bcd46c66e8 test: use new-style fixtures instead of event_loop for asyncio 2025-05-12 15:57:05 +03:00
arcanis 9e346530f2 refactor: use backslashreplace error handling instead of guessing encoding 2025-05-08 14:03:47 +03:00