useCommitters.tsx 937 B

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