useCommitters.tsx 891 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type {Committer} from 'sentry/types';
  2. import {ApiQueryKey, useApiQuery, UseApiQueryOptions} from 'sentry/utils/queryClient';
  3. import useOrganization from './useOrganization';
  4. interface UseCommittersProps {
  5. eventId: string;
  6. projectSlug: string;
  7. }
  8. interface CommittersResponse {
  9. committers: Committer[];
  10. }
  11. const makeCommittersQueryKey = (
  12. orgSlug: string,
  13. projectSlug: string,
  14. eventId: string
  15. ): ApiQueryKey => [`/projects/${orgSlug}/${projectSlug}/events/${eventId}/committers/`];
  16. function useCommitters(
  17. {eventId, projectSlug}: UseCommittersProps,
  18. options: Partial<UseApiQueryOptions<CommittersResponse>> = {}
  19. ) {
  20. const org = useOrganization();
  21. return useApiQuery<CommittersResponse>(
  22. makeCommittersQueryKey(org.slug, projectSlug, eventId),
  23. {
  24. staleTime: Infinity,
  25. retry: false,
  26. ...options,
  27. }
  28. );
  29. }
  30. export default useCommitters;