# frozen_string_literal: true

module ReleaseTools
  module InternalRelease
    module IssueHelper
      def internal_release_task_issue
        project = ReleaseTools::Project::Release::Tasks
        label = 'internal releases'

        @internal_release_task_issue ||= internal_release_issue(project, label)
      end

      def internal_release_dedicated_issue
        project = ReleaseTools::Project::Infrastructure::GitlabDedicated::Team
        label = 'internal releases'

        @internal_release_dedicated_issue ||= internal_release_issue(project, label)
      end

      private

      def internal_release_issue(project, label)
        Retriable.with_context(:api) do
          ReleaseTools::GitlabClient.client
            .issues(project.path, labels: label, state: 'opened')
            .first
        end
      end
    end
  end
end
