Commit Graph

582 Commits

Author SHA1 Message Date
arcanis 4d9e06156d feat: add support of pam authentication
Add naive implementation of user password check by calling su command.
Also change some authentication method to require username to be string
instead of optional string
2024-08-20 16:44:40 +03:00
arcanis af2269c64a fix: print current and updated version correctly
The issue appears in case if versions ar the same (e.g. rebuild); in
this case printer doesn't increment version as builder does.

Also util has been renamed to utils, keeping backward compatibiltiy
2024-08-16 16:24:11 +03:00
arcanis f44fa19c42 feat: optimize archive reading
Instead of trying to load every database and look for files, this commit
introduces the optimization in which, the service loads packages first,
groups them by database and load files later.

In some cases it significantly descreases times for loading files
2024-08-14 17:07:10 +03:00
arcanis fd3c6343f1 fix: explicitly process list of packages
Small workaround to remove debug packages from being processed
2024-08-14 17:07:10 +03:00
arcanis 9edff2826f fix: remove trailit slash when loading packages files from a database 2024-08-14 17:07:10 +03:00
arcanis b38ecfb35c fix: skip debug packages as well 2024-08-14 17:07:10 +03:00
arcanis 434057ec49 feat: remove excess dependencies leaves (#128)
This mr improves implicit dependencies processing by reducing tree leaves by using the following algorithm:

* remove paths which belong to any base package
* remove packages which are (opt)dependencies of one of the package which provides same path. It also tries to handle circular dependencies by excluding them from being "satisfied"
* remove packages which are already satisfied by any children path
2024-08-14 17:07:10 +03:00
arcanis a01b090c2b feat: improve lock mechanisms
* improve lock mechanisms

* use /run/ahriman for sockett

* better water
2024-08-14 17:07:10 +03:00
arcanis 8ffc1299f0 feat: implement local reporter mode (#126)
* implement local reporter mode

* simplify watcher class

* review changes

* do not update unknown status

* allow empty key patches via api

* fix some pylint warnings in tests
2024-08-14 17:07:10 +03:00
arcanis 02b13de7f4 feat: allow to use simplified keys for context
Initial implementation requires explicit context key name to be set.
Though it is still useful sometimes (e.g. if there should be two
variables with the same type), in the most used scenarios internally
only type is required. This commit extends set and get methods to allow
to construct ContextKey from type directly

Also it breaks old keys, since - in order to reduce amount of possible
mistakes - internal classes uses this generation method
2024-08-14 17:07:10 +03:00
arcanis 50a045434d feat: add abillity to check broken dependencies (#122)
* implement elf dynamic linking check

* load local database too in pacman wrapper
2024-08-14 17:07:10 +03:00
arcanis 7bbe3242d4 type: drop MiddlewareType in favour of Middleware builtin 2024-08-14 17:07:10 +03:00
arcanis a9cb357182 type: fix mypy warn for fresh unixsocket release 2024-08-14 17:07:10 +03:00
arcanis feec9141b2 type: remove another unused mypy directive 2024-08-14 17:07:10 +03:00
arcanis 5ff635db70 Release 2.13.8 2024-05-12 11:53:19 +03:00
arcanis b7d3493ae3 Release 2.13.7 2024-05-09 13:26:40 +03:00
arcanis f8b725d175 fix: parse array variable from command 2024-05-09 13:21:42 +03:00
arcanis 46b3c82aca Release 2.13.6 2024-05-05 21:59:30 +03:00
arcanis 3cd9cff4ee refactor: update code to the latest python (3.12+) 2024-05-05 21:17:30 +03:00
arcanis 9e02d7a38f fix: remove debug packages together with normal ones (#124) 2024-05-05 21:17:30 +03:00
arcanis 9819ed761e Release 2.13.5 2024-04-04 13:33:03 +03:00
arcanis 99ca0cb2fd fix: update Repo.init to the latest pacman release 2024-04-04 13:16:05 +03:00
arcanis 855b55237b feat: add ability to disable debug packages distribution
The feature is implemented as supplying !debug option to makepkg when
generating package list. In this case debug packages still will be
built, however, they will not be added to the repository
2024-04-04 13:14:17 +03:00
arcanis 414eb93b1e Release 2.13.4 2024-02-09 17:47:01 +02:00
arcanis 14721913a4 fix: return only built packages from task
Since the last updates makepkg --packagelist also adds debug packages
which causes errors
2024-02-09 17:37:50 +02:00
arcanis f68e48fb47 refactor: rename packages http methods to own package
docs: update docs import
2024-01-22 02:20:11 +02:00
arcanis 77cceb4c10 Release 2.13.3 2024-01-13 01:24:30 +02:00
arcanis 719af3676e Release 2.13.2 2024-01-08 22:48:55 +02:00
arcanis 6c63ad6df5 fix: report only unique result entries
since builder intro the triggers are called with merged result, thus it
would lead to duplicated callouts
2024-01-08 22:46:42 +02:00
arcanis 497a115535 Release 2.13.1 2024-01-08 21:17:35 +02:00
arcanis 91598951c5 fix: do not raise 404 in case of unknown package on patches endpoints
Previous improvements raise 404 error in case if no packages were found
for patches endpoints. However, in case of multirepo setup this feature
doesn't work properly because package can be located in any other
repository different from default
2024-01-08 14:32:40 +02:00
arcanis 87c87d6455 Release 2.13.0 2024-01-05 22:48:03 +02:00
arcanis 29bb6284b0 test: add pytlint imports plugin and fix errors 2024-01-05 19:52:51 +02:00
arcanis 706808fc97 refactor: simplify lock processing in worker trigger 2024-01-05 16:11:32 +02:00
arcanis 7e5f21c26d refactor: split Path elements to / and first directory 2024-01-05 15:22:46 +02:00
arcanis 56e97040d6 feat: read username if email is not available for oauth provider
Also add recipe for OAuth with GitHub setup
2024-01-05 12:28:31 +02:00
arcanis 9510a14b90 refactor: use root RequestException instead of the one from subpackage 2024-01-05 11:48:38 +02:00
arcanis 6eeef39fe5 fix: safe urls for packages
String catenation used for url generators didn't encode package names
which could lead to missing data in case if e.g. there is slash (/) in
package name
2024-01-03 14:28:20 +02:00
arcanis 0e6434faad refactor: remove custom access logger
It is fine when application is able to log request, however, normally it
produces a lot noise, which has been handled by adding special logger.
However, nowadays it requires a lot endpoints to be filtered and doesn't
provide any choice.

Instead of it lets disable access logger by default and let users decide
do they need or not to see access log messages
2024-01-03 12:18:50 +02:00
arcanis 768132bb6c chore: copyright update 2024-01-03 12:09:10 +02:00
arcanis f1095fe007 feat: raise 404 in case if package is unknown for logs and patches 2024-01-03 12:09:10 +02:00
arcanis 1af04448c9 feat: threadsafe services
In the most cases it was enough to just add lock. In case of worker
trigger, since there is atomic operation on timer, it was also required
to add queue (coz python doesn't have atomics)
2024-01-03 12:09:10 +02:00
arcanis aad607eaef feat: add workers autodicsovery feature (#121)
* add workers autodicsovery feature

* suppress erros while retrieving worker list

* update recipes

* fix tests and update docs

* filter health checks

* ping based workers
2024-01-03 02:25:24 +02:00
arcanis f3e9fbf9d0 refactor: fix warnings and typos, cleanup code 2023-12-28 16:53:45 +02:00
arcanis 215fe7a592 test: add tests to check args list
Some parsers are shared between different subcommands. It causes errors
when wwe add new arguments to one of them. This commit adds some tests
to cover those cases (except for well-known differencies)
2023-12-27 15:01:07 +02:00
arcanis dd8d5d130b refactor: use AppKey's instead of string identifiers for web application 2023-12-27 13:53:23 +02:00
arcanis b4fa10781b feat: allow to run daemon mode with split packages check (#120) 2023-12-27 03:05:44 +02:00
arcanis f6cdd806b2 feat: add healh-check like endpoint, support of healthcheck in docker compose 2023-12-21 17:49:35 +02:00
arcanis 1b93f4f5e0 fix: drop debug toolbar 2023-12-20 16:26:14 +02:00
arcanis a872ecfc23 docs: docs review 2023-12-20 10:00:12 +02:00