Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
PATH
remote: .
specs:
entitlements-github-plugin (1.2.4)
entitlements-github-plugin (1.2.5)
contracts (~> 0.17.0)
faraday (~> 2.0)
faraday-net_http_persistent (~> 2.3)
faraday-retry (~> 2.0)
octokit (~> 4.25)
retryable (~> 3.0, >= 3.0.5)
Expand Down Expand Up @@ -53,6 +54,9 @@ GEM
logger
faraday-net_http (3.4.4)
net-http (~> 0.5)
faraday-net_http_persistent (2.3.1)
faraday (~> 2.5)
net-http-persistent (>= 4.0.4, < 5)
faraday-retry (2.4.0)
faraday (~> 2.0)
hashdiff (1.2.1)
Expand All @@ -66,6 +70,8 @@ GEM
mutex_m (0.3.0)
net-http (0.9.1)
uri (>= 0.11.1)
net-http-persistent (4.0.8)
connection_pool (>= 2.2.4, < 4)
net-ldap (0.20.0)
base64
ostruct
Expand Down
1 change: 1 addition & 0 deletions entitlements-github-plugin.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Gem::Specification.new do |s|

s.add_dependency "contracts", "~> 0.17.0"
s.add_dependency "faraday", "~> 2.0"
s.add_dependency "faraday-net_http_persistent", "~> 2.3"
s.add_dependency "faraday-retry", "~> 2.0"
s.add_dependency "octokit", "~> 4.25"
s.add_dependency "retryable", "~> 3.0", ">= 3.0.5"
Expand Down
3 changes: 2 additions & 1 deletion lib/entitlements/backend/github_org/provider.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ def role_name(role_identifier)
# Returns an Entitlements::Models::Group object.
Contract String => Entitlements::Models::Group
def role_to_group(role)
members = github.org_members.keys.select { |username| github.org_members[username] == role }
org_members = github.org_members
members = org_members.select { |_, member_role| member_role == role }.keys
Entitlements::Models::Group.new(
dn: role_dn(role),
members: Set.new(members),
Expand Down
4 changes: 4 additions & 0 deletions lib/entitlements/service/github.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

require_relative "../config/retry"

require "faraday/net_http_persistent"
require "net/http"
require "octokit"
require "uri"
Expand Down Expand Up @@ -169,6 +170,9 @@ def invalidate_org_members_predictive_cache
def octokit
@octokit ||= begin
client = Octokit::Client.new(access_token: token)
middleware = Octokit::Default.middleware.dup
middleware.adapter :net_http_persistent
client.middleware = middleware
client.api_endpoint = addr if addr
client.auto_paginate = true
client.per_page = 100
Expand Down
2 changes: 1 addition & 1 deletion lib/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

module Entitlements
module Version
VERSION = "1.2.4"
VERSION = "1.2.5"
end
end
2 changes: 1 addition & 1 deletion spec/unit/entitlements/backend/github_org/provider_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

it "pulls the role name from the distinguished name" do
allow(subject).to receive(:github).and_return(github)
allow(github).to receive(:org_members).and_return(members_and_roles)
expect(github).to receive(:org_members).once.and_return(members_and_roles)
result = subject.read("member")
expect(result).to be_a_kind_of(Entitlements::Models::Group)
expect(result.member_strings).to eq(member_strings_set)
Expand Down
9 changes: 9 additions & 0 deletions spec/unit/entitlements/service/github_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@
end
end

describe "#octokit" do
it "uses persistent HTTP connections" do
client = subject.send(:octokit)

expect(client.middleware.adapter.klass).to eq(Faraday::Adapter::NetHttpPersistent)
expect(subject.send(:octokit)).to equal(client)
end
end

describe "#org_members" do
let(:members_and_roles) do
{
Expand Down
Binary file not shown.
Binary file added vendor/cache/net-http-persistent-4.0.8.gem
Binary file not shown.
Loading