From 1a531bca0ef308f1e9c9ba4a01421ed300da24c2 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Fri, 18 Sep 2020 11:21:31 -0400 Subject: [PATCH] Replace need for GitHub ENV vars on bootup (#10372) * Un-eagerload dev mode * Change approach * Fix for_user * Fix spec? * Fix spec? * Fix spec? * Fix spec? * Fix spec? --- app/labor/badge_rewarder.rb | 2 +- .../github_tag/github_readme_tag.rb | 6 ++--- app/models/github_issue.rb | 6 ++--- app/services/github/client.rb | 7 ------ app/services/github/oauth_client.rb | 6 ++++- .../github_tag/github_readme_tag_spec.rb | 2 +- spec/services/github/client_spec.rb | 22 ------------------- 7 files changed, 13 insertions(+), 38 deletions(-) delete mode 100644 app/services/github/client.rb delete mode 100644 spec/services/github/client_spec.rb diff --git a/app/labor/badge_rewarder.rb b/app/labor/badge_rewarder.rb index 30142aa20..59fb14081 100644 --- a/app/labor/badge_rewarder.rb +++ b/app/labor/badge_rewarder.rb @@ -82,7 +82,7 @@ module BadgeRewarder return unless badge REPOSITORIES.each do |repo| - commits = Github::Client.commits(repo, since: since.utc.iso8601) + commits = Github::OauthClient.new.commits(repo, since: since.utc.iso8601) authors_uids = commits.map { |commit| commit.author.id } Identity.github.where(uid: authors_uids).find_each do |i| diff --git a/app/liquid_tags/github_tag/github_readme_tag.rb b/app/liquid_tags/github_tag/github_readme_tag.rb index cf32c2f93..1d92e828a 100644 --- a/app/liquid_tags/github_tag/github_readme_tag.rb +++ b/app/liquid_tags/github_tag/github_readme_tag.rb @@ -10,7 +10,7 @@ class GithubTag end def render - content = Github::Client.repository(repository_path) + content = Github::OauthClient.new.repository(repository_path) if show_readme? readme_html = fetch_readme(repository_path) @@ -59,8 +59,8 @@ class GithubTag end def fetch_readme(repository_path) - readme_html = Github::Client.readme(repository_path, accept: "application/vnd.github.html") - readme = Github::Client.readme(repository_path) + readme_html = Github::OauthClient.new.readme(repository_path, accept: "application/vnd.github.html") + readme = Github::OauthClient.new.readme(repository_path) clean_relative_path!(readme_html, readme.download_url) rescue Github::Errors::NotFound nil diff --git a/app/models/github_issue.rb b/app/models/github_issue.rb index da6198db7..fadb88e18 100644 --- a/app/models/github_issue.rb +++ b/app/models/github_issue.rb @@ -31,17 +31,17 @@ class GithubIssue < ApplicationRecord if PATH_COMMENT_REGEXP.match?(url) repo, issue_id = comment_repo_and_issue_id(url) - issue.issue_serialized = Github::Client.issue_comment(repo, issue_id).to_h + issue.issue_serialized = Github::OauthClient.new.issue_comment(repo, issue_id).to_h issue.category = "issue_comment" else repo, issue_id = issue_or_pull_repo_and_issue_id(url) - issue.issue_serialized = Github::Client.issue(repo, issue_id).to_h + issue.issue_serialized = Github::OauthClient.new.issue(repo, issue_id).to_h issue.category = "issue" end # despite the counter intuitive name `.markdown` returns HTML rendered # from the original markdown - issue.processed_html = Github::Client.markdown(issue.issue_serialized[:body]) + issue.processed_html = Github::OauthClient.new.markdown(issue.issue_serialized[:body]) issue.save! diff --git a/app/services/github/client.rb b/app/services/github/client.rb deleted file mode 100644 index b98a05ffb..000000000 --- a/app/services/github/client.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Github - # Github client with Application Authentication (uses ocktokit.rb as a backend) - Client = OauthClient.new( - client_id: ApplicationConfig["GITHUB_KEY"], - client_secret: ApplicationConfig["GITHUB_SECRET"], - ) -end diff --git a/app/services/github/oauth_client.rb b/app/services/github/oauth_client.rb index f0e8d6379..cf69cdf4c 100644 --- a/app/services/github/oauth_client.rb +++ b/app/services/github/oauth_client.rb @@ -5,7 +5,11 @@ module Github APP_AUTH_CREDENTIALS_PRESENT = proc { |key, value| APP_AUTH_CREDENTIALS.include?(key) && value.present? }.freeze # @param credentials [Hash] the OAuth credentials, {client_id:, client_secret:} or {access_token:} - def initialize(credentials) + def initialize(credentials = nil) + credentials ||= { + client_id: SiteConfig.github_key, + client_secret: SiteConfig.github_secret + } @credentials = check_credentials!(credentials) end diff --git a/spec/liquid_tags/github_tag/github_readme_tag_spec.rb b/spec/liquid_tags/github_tag/github_readme_tag_spec.rb index 6500a9b2b..96b447aab 100644 --- a/spec/liquid_tags/github_tag/github_readme_tag_spec.rb +++ b/spec/liquid_tags/github_tag/github_readme_tag_spec.rb @@ -69,7 +69,7 @@ RSpec.describe GithubTag::GithubReadmeTag, type: :liquid_tag, vcr: true do end it "renders a repository with a missing README" do - allow(Github::Client).to receive(:readme).and_raise(Github::Errors::NotFound) + allow_any_instance_of(Github::OauthClient).to receive(:readme).and_raise(Github::Errors::NotFound) VCR.use_cassette("github_client_repository") do template = generate_tag(url_repository).render diff --git a/spec/services/github/client_spec.rb b/spec/services/github/client_spec.rb deleted file mode 100644 index 54b9d020f..000000000 --- a/spec/services/github/client_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -require "rails_helper" - -RSpec.describe Github::Client, type: :service, vcr: true do - let(:repo) { "thepracticaldev/dev.to" } - - describe ".issue" do - it "returns a an issue" do - VCR.use_cassette("github_client_issue") do - issue = described_class.issue(repo, 7434) - expect(issue.title).to be_present - end - end - - it "raises NotFound if the issue does not exist" do - VCR.use_cassette("github_client_issue_not_found") do - expect do - described_class.issue(repo, 0) - end.to raise_error(Github::Errors::NotFound) - end - end - end -end