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
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
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
forgejo
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
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
org
packages
pull Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
release
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
task Fix "force private" logic (#31012) 2024-05-26 18:20:33 +02:00
uinotification
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