Commit Graph
100 Commits
Author SHA1 Message Date
arcanis 12a3aa8573 generate filenames without using makepkg 2024-09-20 23:22:52 +03:00
arcanis 393104f9fa type: ignore too-many-positional-arguments 2024-09-20 23:22:33 +03:00
arcanis b9f39e0d99 chore: refresh icons 2024-09-20 03:29:18 +03:00
arcanis 990397e1cb Revert "fix: update Repo.init to the latest pacman release"
This reverts commit d30d512eb6.
2024-09-20 01:48:09 +03:00
arcanis 300713f5d5 fix: limit amount of fetches used for changes
The issue appears in case if - somehow - unknown commit sha has been
stored. In this scenario it would try to fetch infinitely
2024-09-20 01:48:03 +03:00
arcanis 9a17f19f7b feat: calculate changes on package addition as well 2024-09-20 01:48:03 +03:00
arcanis 3ff1bf473c fix: do not treat cached vcs packages as local 2024-09-20 01:47:58 +03:00
arcanis 50cd71b954 feat: calculate and store changes for each update 2024-09-17 15:01:45 +03:00
arcanis f81ebe6c3c docs: improve class init docs 2024-09-15 15:13:54 +03:00
arcanisandGitHub 1d85a61cc4 feat: get rid of jquery (#133) 2024-09-05 02:26:52 +03:00
arcanis 689de82139 build: make cerberus dependency optional 2024-09-04 22:28:25 +03:00
arcanis 5b9f35220f feat: implement stats subcommand (#132) 2024-09-04 22:28:25 +03:00
arcanis 8fc4d7b4a5 feat: allow filter events by timestamp 2024-09-04 22:28:25 +03:00
arcanis cedf18ac7a chore: add rss generation to samples 2024-09-04 22:28:25 +03:00
arcanis 164b6d7956 feat: add event log and update chart to package info modal 2024-09-04 22:28:25 +03:00
arcanis 27e595cdf4 feat: remove duplicates from the toast 2024-09-04 22:28:25 +03:00
arcanis 020560d341 refactor: simplify Validator class 2024-09-04 22:28:25 +03:00
arcanis cdef67986b feat: allow cross reference in the configuration (#131) 2024-09-04 22:28:25 +03:00
arcanis dddcd0bfce feat: implement rss generation (#130) 2024-09-04 22:28:25 +03:00
arcanis a0784b7af1 feat: add ability to log sql statements 2024-09-04 22:28:25 +03:00
arcanis 4c4c9b2bfd feat: serve logs and events from the newest to oldest, but keep the
ordering

So basically initial implementation, with limit=1, would emit the oldest
record in series. New implementation will return the most recent one
instead

The response is still sorted by ascension
2024-09-04 22:28:25 +03:00
arcanis 5c34c051cb feat: log package update events 2024-09-04 22:28:25 +03:00
arcanis 4fa44b0532 refactor: allow event to receive keyword arguments
This change also replaces the dataclass implementation of the class to
custom one
2024-09-04 22:28:25 +03:00
arcanis f167ce7d3b feat: add timer for metrics purposes 2024-09-04 22:28:25 +03:00
arcanis 950b9e4289 docs: update booleans in docs 2024-09-04 22:28:25 +03:00
arcanis 264aeb7150 feat: implement audit log tables and methods (#129) 2024-09-04 22:28:25 +03:00
arcanis be7169c5df feat: replace scan paths options to single one
It has been found that previous system didn't allow to configure
specific cases (e.g. a whitelisted directory inside /usr/lib/cmake). The
current solution replaces two options to single one, which also allows a
regular expressions

Also PackageArchive class has been moved to core package, because it is
more about service rather than model
2024-09-04 22:25:54 +03:00
arcanis 9c1e9ecbdc Release 2.14.1 2024-09-04 22:01:04 +03:00
arcanis 4b2f6bbee9 bug: fix removal of the packages
It has been broken since reporter improvements, because it effectivelly
1) didn't call remove functions in database
2) used empty repository identifier for web service

With those changes it also raises exception when you try to call id on
empty identifier
2024-09-04 21:50:33 +03:00
arcanis fd8c8a00d0 chore: small contributing guide update 2024-09-04 21:49:31 +03:00
arcanis eaf1984eb3 refactor: fix some IDE warnings 2024-09-04 21:49:31 +03:00
arcanis 794dddccd9 build: update pytest configuration to suppress deprecation warnings 2024-09-04 21:49:31 +03:00
arcanis 7bd7f95f76 Release 2.14.0 2024-08-23 14:37:05 +03:00
arcanis 375374c396 docs: improve waiter classes docs 2024-08-23 14:33:07 +03:00
arcanis d1ad5ecc11 feat: add ability to suppress git hints
It can be done by setting options in command. The commit author/email is
also now using this logic
2024-08-23 14:33:07 +03:00
arcanis 1eb4d8e47f feat: add blacklisted paths to implicit dependencies processing
It has been found that in some cases additional packages have been added
as dependencies, like usr/share/applications, usr/lib/cmake, etc

This commit adds an ability to blacklist specific paths from processing
2024-08-23 14:33:07 +03:00
arcanis 0861548b56 docs: split faq into multiple files 2024-08-20 16:44:40 +03:00
arcanis e9e4172063 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 beb6156795 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 dbfb460557 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 f7f76c4119 fix: explicitly process list of packages
Small workaround to remove debug packages from being processed
2024-08-14 17:07:10 +03:00
arcanis 88ee300b9e fix: remove trailit slash when loading packages files from a database 2024-08-14 17:07:10 +03:00
arcanis 6f30c687c2 fix: skip debug packages as well 2024-08-14 17:07:10 +03:00
arcanis c023ebe165 docs: update documentation for implicit dependencies resolution 2024-08-14 17:07:10 +03:00
arcanis 54b99cacfd 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 4f5166ff25 feat: improve lock mechanisms
* improve lock mechanisms

* use /run/ahriman for sockett

* better water
2024-08-14 17:07:10 +03:00
arcanis c8afcbf36a 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 2b9880bd3c 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 3be5cdafe8 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 668be41c3e type: drop MiddlewareType in favour of Middleware builtin 2024-08-14 17:07:10 +03:00
arcanis 3353daec6d type: fix mypy warn for fresh unixsocket release 2024-08-14 17:07:10 +03:00
arcanis eef4d2dd98 type: remove another unused mypy directive 2024-08-14 17:07:10 +03:00
arcanis b15161554e build: use requests-unixsocket2 fork
Since requests-2.32.0, the http+unix url scheme is brokek, check
https://github.com/msabramo/requests-unixsocket/issues/73 for more
details
2024-08-14 17:07:10 +03:00
arcanis bb4a0d75fc Release 2.13.8 2024-05-12 11:53:19 +03:00
arcanis bca0df41d1 fix: drop integrity check for javascript
It has been added to improve security, however, it changes over time for
no reason ¯\_(ツ)_/¯ I guess either cdn was hacked or fuck js
2024-05-12 11:49:12 +03:00
arcanis 07b77be6b8 Release 2.13.7 2024-05-09 13:26:40 +03:00
arcanis 2b33510ada fix: parse array variable from command 2024-05-09 13:21:42 +03:00
arcanis 6d05389639 Release 2.13.6 2024-05-05 21:59:30 +03:00
arcanis daf9841717 fix: update integrity checksums for momentjs and daterangepicker 2024-05-05 21:17:30 +03:00
arcanis 0d243a781a refactor: update code to the latest python (3.12+) 2024-05-05 21:17:30 +03:00
arcanis cf2e66a934 fix: remove debug packages together with normal ones (#124) 2024-05-05 21:17:30 +03:00
arcanis f01f35238d Release 2.13.5 2024-04-04 13:33:03 +03:00
arcanis d30d512eb6 fix: update Repo.init to the latest pacman release 2024-04-04 13:16:05 +03:00
arcanis 0437f90e5a build: install base-devel package 2024-04-04 13:16:03 +03:00
arcanis 3cab65855a fix: lazy web component initialization
In some cases (probably slow internet) in place initialization can cause
exception, because elements are not available yet. This commit moves
events initialization to $()
2024-04-04 13:14:17 +03:00
arcanis ecfb615f97 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 243983ee64 docs: update docs 2024-02-10 03:12:09 +02:00
arcanis 812c03d1eb Release 2.13.4 2024-02-09 17:47:01 +02:00
arcanis 01597c531b 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 4fec42eac8 refactor: rename packages http methods to own package
docs: update docs import
2024-01-22 02:20:11 +02:00
arcanis 7574b8e5ce Release 2.13.3 2024-01-13 01:24:30 +02:00
arcanisandGitHub 0f2e7f45da fix: replace logo and name in title to just icon 2024-01-12 01:25:46 +02:00
arcanis 5956a8720b Release 2.13.2 2024-01-08 22:48:55 +02:00
arcanis 8dd4ced5e9 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 6361c41f76 Release 2.13.1 2024-01-08 21:17:35 +02:00
arcanis 270084bb39 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 f89a5252de build: pass ssh agent to tox release env 2024-01-08 14:22:53 +02:00
arcanis 8cafdb52e5 Release 2.13.0 2024-01-05 22:48:03 +02:00
arcanis 203ebad817 ci: explicit isolated build for old ubuntu tox 2024-01-05 22:47:28 +02:00
arcanis 9f471d11a7 docs: add comments to configuration 2024-01-05 22:24:37 +02:00
arcanis 2ea8a4a07f test: add pytlint imports plugin and fix errors 2024-01-05 19:52:51 +02:00
arcanis 856bbc30d4 refactor: fix pylint warnings in tests 2024-01-05 16:40:38 +02:00
arcanis c88f97c36e refactor: simplify lock processing in worker trigger 2024-01-05 16:11:32 +02:00
arcanis 174d7578a0 refactor: split Path elements to / and first directory 2024-01-05 15:22:46 +02:00
arcanis 8b26035fc9 docs: url spelling 2024-01-05 12:37:23 +02:00
arcanis fc9391dd5f chore: add index page recipe 2024-01-05 12:34:55 +02:00
arcanis ed7ed5d5d9 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 9e1cf3cde7 refactor: use root RequestException instead of the one from subpackage 2024-01-05 11:48:38 +02:00
arcanis 08086e8ba8 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 1a61da7ab9 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 f4dcbbde18 chore: copyright update 2024-01-03 12:09:10 +02:00
arcanis 7aba67186f feat: raise 404 in case if package is unknown for logs and patches 2024-01-03 12:09:10 +02:00
arcanis 8635ee8953 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
arcanisandGitHub 2d42424477 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 fdf7a36271 chore: make yamll style consistent 2023-12-29 03:57:13 +02:00
arcanis e9116741a5 refactor: fix warnings and typos, cleanup code 2023-12-28 16:53:45 +02:00
arcanis 1a2327cefd build: install aiohttp-cors from aur 2023-12-28 16:05:48 +02:00
arcanis 29c8c4bfd7 chore: add daemon unit 2023-12-28 15:24:14 +02:00
arcanis e40b773029 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 ee3ccf70ac refactor: use AppKey's instead of string identifiers for web application 2023-12-27 13:53:23 +02:00