Sha256: a6d48b48f6cee95a6d1e270f2a7817d494cc915f62cc1ed2093e9109a382fb23
Contents?: true
Size: 919 Bytes
Versions: 2
Compression:
Stored size: 919 Bytes
Contents
# frozen_string_literal: true module Geet module Services class ListIssues def execute(repository, assignee_pattern: nil, output: $stdout, **) assignee_thread = find_assignee(repository, assignee_pattern, output) if assignee_pattern assignee = assignee_thread&.join&.value issues = repository.issues(assignee: assignee) issues.each do |issue| output.puts "#{issue.number}. #{issue.title} (#{issue.link})" end end private def find_assignee(repository, assignee_pattern, output) output.puts 'Finding assignee...' Thread.new do collaborators = repository.collaborators collaborator = collaborators.find { |collaborator| collaborator =~ /#{assignee_pattern}/i } collaborator || raise("No collaborator found for pattern: #{assignee_pattern.inspect}") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
geet-0.3.0 | lib/geet/services/list_issues.rb |
geet-0.2.1 | lib/geet/services/list_issues.rb |