{"action":"created","issue":{"url":"https://api.github.com/repos/chef/supermarket/issues/991","labels_url":"https://api.github.com/repos/chef/supermarket/issues/991/labels{/name}","comments_url":"https://api.github.com/repos/chef/supermarket/issues/991/comments","events_url":"https://api.github.com/repos/chef/supermarket/issues/991/events","html_url":"https://github.com/chef/supermarket/issues/991","id":59688012,"number":991,"title":"Curry is not appearing to work with opscode-bookbooks/iis","user":{"login":"nellshamrell","id":813007,"avatar_url":"https://avatars.githubusercontent.com/u/813007?v=3","gravatar_id":"","url":"https://api.github.com/users/nellshamrell","html_url":"https://github.com/nellshamrell","followers_url":"https://api.github.com/users/nellshamrell/followers","following_url":"https://api.github.com/users/nellshamrell/following{/other_user}","gists_url":"https://api.github.com/users/nellshamrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nellshamrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nellshamrell/subscriptions","organizations_url":"https://api.github.com/users/nellshamrell/orgs","repos_url":"https://api.github.com/users/nellshamrell/repos","events_url":"https://api.github.com/users/nellshamrell/events{/privacy}","received_events_url":"https://api.github.com/users/nellshamrell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nellshamrell","id":813007,"avatar_url":"https://avatars.githubusercontent.com/u/813007?v=3","gravatar_id":"","url":"https://api.github.com/users/nellshamrell","html_url":"https://github.com/nellshamrell","followers_url":"https://api.github.com/users/nellshamrell/followers","following_url":"https://api.github.com/users/nellshamrell/following{/other_user}","gists_url":"https://api.github.com/users/nellshamrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nellshamrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nellshamrell/subscriptions","organizations_url":"https://api.github.com/users/nellshamrell/orgs","repos_url":"https://api.github.com/users/nellshamrell/repos","events_url":"https://api.github.com/users/nellshamrell/events{/privacy}","received_events_url":"https://api.github.com/users/nellshamrell/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-03-03T18:58:24Z","updated_at":"2015-03-03T19:31:11Z","closed_at":null,"body":"Reported internally at Chef this morning:\r\n\r\n\"so curry doesn't appear to be working on opscode-cookbooks/iis -> https://github.com/opscode-cookbooks/iis/pull/144. I just clicked \"evaluate repository\" under https://supermarket.chef.io/curry/repositories and waiting a minute and did it again and despite the website making promises to me about success I'm not seeing it on the PR.\"\r\n\r\nI took a look at the Sentry logs and this is the stack trace we're getting when this error is encountered.\r\n\r\nNoMethodError: undefined method `chef_blog_url' for #<Curry::UnauthorizedCommitAuthorComment:0x000000057a5508>\r\n\r\nStacktrace (most recent call first):\r\n\r\n  File \"unauthorized_commit_author_comment.rb\", line 47, in block in comment_body\r\n    blog.](#{chef_blog_url('2014/06/23/changes-to-the-contributor-license-agreement-process')})\r\n  File \"unauthorized_commit_author_comment.rb\", line 39, in tap\r\n    [].tap do |parts|\r\n  File \"unauthorized_commit_author_comment.rb\", line 39, in comment_body\r\n    [].tap do |parts|\r\n  File \"unauthorized_commit_author_comment.rb\", line 28, in call\r\n    comment_body\r\n  File \"pull_request_annotator.rb\", line 67, in each\r\n    actions.each(&:call)\r\n  File \"pull_request_annotator.rb\", line 67, in annotate\r\n    actions.each(&:call)\r\n  File \"cla_validation_worker.rb\", line 15, in perform\r\n    Curry::PullRequestAnnotator.new(pull_request).annotate\r\n  File \"sidekiq/processor.rb\", line 52, in block (2 levels) in process\r\n    worker.perform(*cloned(msg['args']))\r\n  File \"sidekiq/middleware/chain.rb\", line 122, in call\r\n    final_action.call\r\n  File \"sidekiq/middleware/chain.rb\", line 122, in block in invoke\r\n    final_action.call\r\n  File \"new_relic/agent/instrumentation/sidekiq.rb\", line 33, in block in call\r\n    yield\r\n  File \"new_relic/agent/instrumentation/controller_instrumentation.rb\", line 365, in perform_action_with_newrelic_trace\r\n    yield\r\n  File \"new_relic/agent/instrumentation/sidekiq.rb\", line 29, in call\r\n    perform_action_with_newrelic_trace(trace_args) do\r\n  File \"sidekiq/middleware/chain.rb\", line 124, in block in invoke\r\n    chain.shift.call(*args, &traverse_chain)\r\n  File \"sidetiq/middleware/history.rb\", line 8, in call\r\n    yield\r\n  File \"sidekiq/middleware/chain.rb\", line 124, in block in invoke\r\n    chain.shift.call(*args, &traverse_chain)\r\n  File \"sidekiq/middleware/server/active_record.rb\", line 6, in call\r\n    yield\r\n  File \"sidekiq/middleware/chain.rb\", line 124, in block in invoke\r\n    chain.shift.call(*args, &traverse_chain)\r\n  File \"sidekiq/middleware/server/retry_jobs.rb\", line 74, in call\r\n    yield\r\n  File \"sidekiq/middleware/chain.rb\", line 124, in block in invoke\r\n    chain.shift.call(*args, &traverse_chain)\r\n  File \"sidekiq/middleware/server/logging.rb\", line 11, in block in call\r\n    yield\r\n  File \"sidekiq/logging.rb\", line 22, in with_context\r\n    yield\r\n  File \"sidekiq/middleware/server/logging.rb\", line 7, in call\r\n    Sidekiq::Logging.with_context(\"#{worker.class.to_s} JID-#{item['jid']}\") do\r\n  File \"sidekiq/middleware/chain.rb\", line 124, in block in invoke\r\n    chain.shift.call(*args, &traverse_chain)\r\n  File \"sidekiq/middleware/chain.rb\", line 127, in call\r\n    traverse_chain.call\r\n  File \"sidekiq/middleware/chain.rb\", line 127, in invoke\r\n    traverse_chain.call\r\n  File \"sidekiq/processor.rb\", line 51, in block in process\r\n    Sidekiq.server_middleware.invoke(worker, msg, queue) do\r\n  File \"sidekiq/processor.rb\", line 94, in stats\r\n    yield\r\n  File \"sidekiq/processor.rb\", line 50, in process\r\n    stats(worker, msg, queue) do\r\n  File \"celluloid/calls.rb\", line 25, in public_send\r\n    obj.public_send(@method, *@arguments, &_block)\r\n  File \"celluloid/calls.rb\", line 25, in dispatch\r\n    obj.public_send(@method, *@arguments, &_block)\r\n  File \"celluloid/calls.rb\", line 122, in dispatch\r\n    super(obj)\r\n  File \"celluloid/actor.rb\", line 322, in block in handle_message\r\n    message.dispatch(@subject)\r\n  File \"celluloid/actor.rb\", line 416, in block in task\r\n    yield\r\n  File \"celluloid/tasks.rb\", line 55, in block in initialize\r\n    yield\r\n  File \"celluloid/tasks/task_fiber.rb\", line 13, in block in create\r\n    yield"},"comment":{"url":"https://api.github.com/repos/chef/supermarket/issues/comments/77016627","html_url":"https://github.com/chef/supermarket/issues/991#issuecomment-77016627","issue_url":"https://api.github.com/repos/chef/supermarket/issues/991","id":77016627,"user":{"login":"nellshamrell","id":813007,"avatar_url":"https://avatars.githubusercontent.com/u/813007?v=3","gravatar_id":"","url":"https://api.github.com/users/nellshamrell","html_url":"https://github.com/nellshamrell","followers_url":"https://api.github.com/users/nellshamrell/followers","following_url":"https://api.github.com/users/nellshamrell/following{/other_user}","gists_url":"https://api.github.com/users/nellshamrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nellshamrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nellshamrell/subscriptions","organizations_url":"https://api.github.com/users/nellshamrell/orgs","repos_url":"https://api.github.com/users/nellshamrell/repos","events_url":"https://api.github.com/users/nellshamrell/events{/privacy}","received_events_url":"https://api.github.com/users/nellshamrell/received_events","type":"User","site_admin":false},"created_at":"2015-03-03T19:31:11Z","updated_at":"2015-03-03T19:31:11Z","body":"I think this is due to us attempting to call a helper method from a model.  Helper methods are generally intended only for views.  While we could hack the model a bit to allow it to use the helper method, this is not a good practice.  Evaluating a better way to do this."}}