ManageIQ/miq_bot

View on GitHub
lib/github_service/concerns/is_team_member.rb

Summary

Maintainability
A
0 mins
Test Coverage
module IsTeamMember
  def triage_member?(username)
    IsTeamMember.triage_team_members.include?(username)
  end

  # List of usernames for the triage team
  #
  # Cache triage_team_members, and refresh cache every 24 hours
  #
  # Note:  This is created as a class method
  #
  cache_with_timeout(:triage_team_members, 24 * 60 * 60) do
    if member_organization_name && triage_team_name
      team = GithubService.org_teams(member_organization_name)
                          .detect { |t| t.name == triage_team_name }

      if team.nil?
        []
      else
        GithubService.team_members(team.id).map(&:login)
      end
    else
      []
    end
  end

  module_function

  def triage_team_name
    @triage_team_name ||= Settings.triage_team_name || nil
  end

  def member_organization_name
    @member_organization_name ||= Settings.member_organization_name || nil
  end
end