{"record":{"id":"fcc76ea5d0ec6897","repo":"CanineHQ/canine","slug":"failed-to-fetch-commits-e-message","errorCode":null,"errorMessage":"Failed to fetch commits: #{e.message}","messagePattern":"Failed to fetch commits: #(.+?)","errorType":"exception","errorClass":"Git::Client::Error","httpStatus":null,"severity":"error","filePath":"app/services/git/github/client.rb","lineNumber":38,"sourceCode":"    Octokit::Client.new(client_options)\n  end\n\n  def commits(branch)\n    client.commits(repository_url, branch).map do |commit|\n      Git::Common::Commit.new(\n        sha: commit.sha,\n        message: commit.commit.message,\n        author_name: commit.commit.author.name,\n        author_email: commit.commit.author.email,\n        authored_at: commit.commit.author.date,\n        committer_name: commit.commit.committer.name,\n        committer_email: commit.commit.committer.email,\n        committed_at: commit.commit.committer.date,\n        url: commit.html_url\n      )\n    end\n  rescue Octokit::Error => e\n    raise Git::Client::Error, \"Failed to fetch commits: #{e.message}\"\n  end\n\n  def initialize(access_token:, repository_url:, api_base_url: nil)\n    @client = self.class.build_client(access_token:, api_base_url:)\n    @repository_url = repository_url\n  end\n\n  def repository_exists?\n    client.repository?(repository_url)\n  end\n\n  def can_write_webhooks?\n    webhooks\n    true\n  rescue Octokit::NotFound\n    false\n  end\n","sourceCodeStart":20,"sourceCodeEnd":56,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/app/services/git/github/client.rb#L20-L56","documentation":"Error \"Failed to fetch commits: #{e.message}\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at app/services/git/github/client.rb:38 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ba4ee3968d8513ee27d8583fbd3e854a8dd053f3","analyzedAt":"2026-08-23T17:49:27.834Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}