added faktory

This commit is contained in:
Brendan McDevitt 2022-04-18 15:14:54 -05:00
parent 5e3e210f41
commit 449301ff58
7 changed files with 40 additions and 16 deletions

View file

@ -14,8 +14,10 @@ gem 'tweetkit', github: 'julianfssen/tweetkit' # for twitter v2 api support
gem 'nokogiri'
gem 'graphql'
gem 'graphql-client'
gem 'retryable'
gem 'rubocop'
gem 'rubocop-rails'
gem 'faktory_worker_ruby'
# Use postgres as the database for Active Record
gem 'pg'

View file

@ -111,6 +111,7 @@ GEM
execjs
coffee-script-source (1.12.2)
concurrent-ruby (1.1.10)
connection_pool (2.2.5)
crass (1.0.6)
digest (3.1.0)
domain_name (0.5.20190701)
@ -118,6 +119,8 @@ GEM
equalizer (0.0.11)
erubi (1.10.0)
execjs (2.8.1)
faktory_worker_ruby (1.1.1)
connection_pool (~> 2.2, >= 2.2.2)
faraday (1.9.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
@ -280,6 +283,7 @@ GEM
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
retryable (3.0.5)
rexml (3.2.5)
rubocop (1.27.0)
parallel (~> 1.10)
@ -380,6 +384,7 @@ DEPENDENCIES
capybara (>= 2.15)
chromedriver-helper
coffee-rails (~> 4.2)
faktory_worker_ruby
git
graphql
graphql-client
@ -397,6 +402,7 @@ DEPENDENCIES
rails (~> 7.0.0)
railties
rest-client
retryable
rubocop
rubocop-rails
sass-rails

View file

@ -17,4 +17,12 @@ services:
- "3000:3000"
depends_on:
- db
faktory:
image: contribsys/faktory:latest
ports:
- "7419:7419"
- "7420:7420"
volumes:
- ./tmp/faktory:/var/lib/faktory

View file

@ -56,12 +56,14 @@ module GithubApi
GRAPHQL
def self.find(username)
response = GithubApi::Client.query(OwnerReposQuery, variables: { owner: username })
if response.errors.any?
raise QueryExecutionError.new(response.errors[:data].join(", "))
else
response.data.repository_owner.repositories.nodes.map(&:to_h)
end
#Retryable.retryable(tries: 3, on: QueryExecutionError, sleep: lambda { |n| 4**n } ) do
response = GithubApi::Client.query(OwnerReposQuery, variables: { owner: username })
if response.errors.any?
raise QueryExecutionError.new(response.errors[:data].join(", "))
else
response.data.repository_owner.repositories.nodes.map(&:to_h)
end
#end
end
end
end

View file

@ -45,12 +45,14 @@ class SecurityAdvisory
GRAPHQL
def self.find(ghsa_id)
response = GithubApi::Client.query(SecurityAdvisoryQuery, variables: { ghsa_id: ghsa_id })
if response.errors.any?
raise QueryExecutionError.new(response.errors[:data].join(", "))
else
response.data.security_advisory
end
#Retryable.retryable(tries: 3, on: QueryExecutionError, sleep: lambda { |n| 4**n } ) do
response = GithubApi::Client.query(SecurityAdvisoryQuery, variables: { ghsa_id: ghsa_id })
if response.errors.any?
raise QueryExecutionError.new(response.errors[:data].join(", "))
else
response.data.security_advisory
end
#end
end
end
end

View file

@ -16,12 +16,14 @@ class User
GRAPHQL
def self.find(username)
#Retryable.retryable(tries: 3, on: QueryExecutionError, sleep: lambda { |n| 4**n } ) do
response = GithubApi::Client.query(UserProfileQuery, variables: { username: username })
if response.errors.any?
raise QueryExecutionError.new(response.errors[:data].join(", "))
else
response.data.user
end
#end
end
end
end

View file

@ -10,10 +10,12 @@ class GithubUserImporter
def username_hashes
usernames.map do |username|
username_response = GithubApi::User.find(username)
username_repos = GithubApi::OwnerRepos.find(username)
repos_hash = { 'repositories' => username_repos }
username_response.to_h.merge(repos_hash)
Retryable.retryable(tries: 3, on: QueryExecutionError, sleep: lambda { |n| 4**n } ) do
username_response = GithubApi::User.find(username)
username_repos = GithubApi::OwnerRepos.find(username)
repos_hash = { 'repositories' => username_repos }
username_response.to_h.merge(repos_hash)
end
end
end