(route string)
| 1023 | } |
| 1024 | |
| 1025 | func (s *Server) checkGithubRateLimit(route string) middleware.CheckFunc { |
| 1026 | return func(req *http.Request) error { |
| 1027 | claims := auth.GetClaims(req.Context()) |
| 1028 | if claims == nil || claims.OwnerType() == auth.OwnerTypeAnon { |
| 1029 | limitKey := ratelimit.AnonLimitKey(route, observability.HTTPPeer(req)) |
| 1030 | if err := s.limiter.Limit(req.Context(), limitKey, ratelimit.Sensitive); err != nil { |
| 1031 | if errors.As(err, &ratelimit.QuotaExceededError{}) { |
| 1032 | return httputil.Error(http.StatusTooManyRequests, err) |
| 1033 | } |
| 1034 | return err |
| 1035 | } |
| 1036 | } |
| 1037 | return nil |
| 1038 | } |
| 1039 | } |
| 1040 | |
| 1041 | func (s *Server) userAccessToken(ctx context.Context, user *database.User) (string, error) { |
| 1042 | if user.GithubTokenExpiresOn != nil && user.GithubTokenExpiresOn.After(time.Now().Add(5*time.Minute)) { |
no test coverage detected