diff --git a/common/gitea_utils.go b/common/gitea_utils.go index ccaed15..57e8e2f 100644 --- a/common/gitea_utils.go +++ b/common/gitea_utils.go @@ -76,6 +76,7 @@ type GiteaLabelSettter interface { } type GiteaTimelineFetcher interface { + ResetTimelineCache(org, repo string, idx int64) GetTimeline(org, repo string, idx int64) ([]*models.TimelineComment, error) } @@ -813,6 +814,17 @@ type TimelineCacheData struct { var giteaTimelineCache map[string]TimelineCacheData = make(map[string]TimelineCacheData) var giteaTimelineCacheMutex sync.RWMutex +func (gitea *GiteaTransport) ResetTimelineCache(org, repo string, idx int64) { + giteaTimelineCacheMutex.Lock() + defer giteaTimelineCacheMutex.Unlock() + + prID := fmt.Sprintf("%s/%s!%d", org, repo, idx) + Cache, IsCached := giteaTimelineCache[prID] + if IsCached { + Cache.lastCheck = Cache.lastCheck.Add(-time.Hour) + } +} + // returns timeline in reverse chronological create order func (gitea *GiteaTransport) GetTimeline(org, repo string, idx int64) ([]*models.TimelineComment, error) { page := int64(1) diff --git a/common/pr.go b/common/pr.go index b6d9e0d..54ca80b 100644 --- a/common/pr.go +++ b/common/pr.go @@ -160,6 +160,8 @@ func FetchPRSet(user string, gitea GiteaPRTimelineReviewFetcher, org, repo strin var pr *models.PullRequest var err error + gitea.ResetTimelineCache(org, repo, num) + prjGitOrg, prjGitRepo, _ := config.GetPrjGit() if prjGitOrg == org && prjGitRepo == repo { if pr, err = gitea.GetPullRequest(org, repo, num); err != nil { @@ -184,6 +186,7 @@ func FetchPRSet(user string, gitea GiteaPRTimelineReviewFetcher, org, repo strin for _, pr := range prs { org, repo, idx := pr.PRComponents() + gitea.ResetTimelineCache(org, repo, idx) reviews, err := FetchGiteaReviews(gitea, org, repo, idx) if err != nil { LogError("Error fetching reviews for", PRtoString(pr.PR), ":", err)