forgejo/services
Gusted 70a7d6a0de
[ENHANCEMENT] Improve caching of contributor stats
- It was noticed [in the Forgejo matrix channel](https://matrix.to/#/!qjPHwFPdxhpLkXMkyP:matrix.org/$vk78UR0eFCwQMDMTZ7-DWjMVB_LIAwHW6SkjhEcGkQQ?via=matrix.org) that the generation of the Forgejo project contributor stats was taking quite a while on codeberg.org. This was continued with the fact that a few moments later it was once again generating them again; it seemed like they weren't being cached while they were.
- The problem was that the cache TTL is hardcoded to ten minutes and not to the configured TTL. This patch changes that by using the configured TLL for the contributor cache, as this is a computationally heavy operation and should be cached for as long as possible for a good user experience. This doesn't impact the accuracy of this feature because the commit ID of the default branch is used as a cache key.
- Also changed in this patch, is that errors aren't cached and are instead being logged, this is more helpful to the administrator. For the user essentially nothing changed on this side, the contributor stats just looks like it's loading indefinitely.
- Realistically, testing this isn't possible, as the cache library Forgejo currently uses doesn't expose the TTL or expiration time of a key. Manually testing this behavior is quite lengthy, as one of the steps would need to be "wait for ten minutes" and describe how you can notice the data was cached or was just generated, and because you could use different types of cache, it will be quite hard to write down how you could check the TTL of a key for a particular cache (I'm not even sure it's even possible for some).
2024-07-06 21:23:46 +02:00
..
actions Fixes git references wrongly transmitted to the action run 2024-06-30 06:17:40 +02:00
agit fix(hook): ignore unknown push options instead of failing 2024-07-02 21:39:01 +02:00
asymkey Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
attachment Add support for API blob upload of release attachments (#29507) 2024-03-06 12:10:46 +08:00
auth Fix tautological conditions (#30735) 2024-05-05 08:59:40 +01:00
automerge Fix automerge will not work because of some events haven't been triggered (#30780) 2024-05-26 19:01:36 +02:00
context ui for adding following repos 2024-05-24 13:28:15 +02:00
contexttest Move database operations of merging a pull request to post receive hook and add a transaction (#30805) 2024-05-12 20:03:10 +02:00
convert Add tag protection via rest api #17862 (#31295) 2024-06-16 13:42:59 +02:00
cron Update checker setting updates 2024-03-31 10:52:24 +05:00
doctor Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
externalaccount [Fix] Account Linking UpdateMigrationsByType (#31428) 2024-06-23 12:40:53 +02:00
f3 Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
federation feat(federated-star) star repositories via ActivityPub (#1680) 2024-06-06 08:58:11 +02:00
feed More db.DefaultContext refactor (#27265) 2023-09-29 12:12:54 +00:00
forgejo [UPGRADE] run sanity checks before the database is upgraded 2024-02-05 14:44:33 +01:00
forms Add slogan config (#3752) 2024-06-07 17:12:48 +00:00
gitdiff chore(lint): make golangci-lint to v1.59.0 happy 2024-06-01 16:17:07 +02:00
indexer Update issue indexer after merging a PR (#30715) 2024-05-12 20:03:10 +02:00
issue Performance improvements for pull request list API (#30490) 2024-06-02 16:26:54 +02:00
lfs Fix #31185 try fix lfs download from bitbucket failed (#31201) 2024-06-16 13:42:59 +02:00
mailer Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
markup Format code 2024-03-28 05:42:25 +01:00
migrations Add lint-go-gopls (#30729) 2024-06-09 11:13:39 +02:00
mirror test(mock): DeletePushMirrors & AddPushMirrorRemote 2024-06-02 16:31:41 +02:00
notify Clean up log messages (#30313) 2024-04-15 20:01:35 +02:00
org Delete repos of org when purge delete user (#27273) 2023-10-19 13:16:11 +00:00
packages packages: skip error logging on duplicate 2024-03-24 07:12:31 +01:00
pull Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
release Fix release published actions not triggering for releases created from existing tags 2024-04-15 22:53:53 +02:00
remote Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
repository [ENHANCEMENT] Improve caching of contributor stats 2024-07-06 21:23:46 +02:00
secrets Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
task Fix "force private" logic (#31012) 2024-05-26 18:20:33 +02:00
uinotification Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
user test(avatar): deleting a user avatar is idempotent 2024-06-05 09:10:42 +02:00
webhook test: webhook open project expected fields 2024-06-05 15:58:51 +02:00
wiki feat: wiki search using git-grep 2024-05-20 13:48:50 +00:00