Shopify / Shopify/shipit-engine

GitHub check runs fail in 0.28.0

Open
#930 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
1.5k
Forks
154
Avg merge
2h 26m
Merged PRs (30d)
3

Description

We just upgraded from 0.26.0 to 0.28.0 and our GitHub status checks started failing, with the following error appearing in the sidekiq logs. Is this expected behaviour?

Aug 08 20:15:55 ip-172-31-43-20 env[3813]: 2019-08-08T20:15:55.072Z 3817 TID-gmyi8shc1 WARN: Octokit::Forbidden: GET https://api.github.com/repos/REDACTED/REDACTED/commits/REDACTED/check-runs: 403 - Resource not accessible by integration // See: https://developer.github.com/v3/checks/runs/#list-check-runs-for-a-specific-ref
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: 2019-08-08T20:15:55.072Z 3817 TID-gmyi8shc1 WARN: /home/shipit/.rvm/gems/ruby-2.5.1/gems/octokit-4.12.0/lib/octokit/response/raise_error.rb:16:in `on_complete'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/response.rb:9:in `block in call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/response.rb:61:in `on_complete'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/response.rb:8:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/lib/shipit/strip_cache_control.rb:4:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-http-cache-1.2.2/lib/faraday/http_cache.rb:303:in `fetch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-http-cache-1.2.2/lib/faraday/http_cache.rb:208:in `process'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-http-cache-1.2.2/lib/faraday/http_cache.rb:146:in `call!'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-http-cache-1.2.2/lib/faraday/http_cache.rb:119:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/rack_builder.rb:141:in `build_response'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/connection.rb:386:in `run_request'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/faraday-0.12.2/lib/faraday/connection.rb:149:in `get'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sawyer-0.8.2/lib/sawyer/agent.rb:94:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/octokit-4.12.0/lib/octokit/connection.rb:156:in `request'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/octokit-4.12.0/lib/octokit/connection.rb:84:in `paginate'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/lib/shipit/octokit_check_runs.rb:3:in `check_runs'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/app/models/shipit/commit.rb:143:in `block in refresh_check_runs!'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/app/models/shipit/stack.rb:378:in `handle_github_redirections'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/app/models/shipit/commit.rb:142:in `refresh_check_runs!'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/shipit-engine-0.28.0/app/jobs/shipit/refresh_check_runs_job.rb:7:in `perform'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/execution.rb:39:in `block in perform_now'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/i18n-1.6.0/lib/i18n.rb:297:in `with_locale'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `instance_exec'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/logging.rb:26:in `block (4 levels) in <module:Logging>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `block in instrument'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `instrument'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/logging.rb:25:in `block (3 levels) in <module:Logging>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/logging.rb:46:in `block in tag_logger'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71:in `block in tagged'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:28:in `tagged'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71:in `tagged'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/logging.rb:46:in `tag_logger'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/logging.rb:22:in `block (2 levels) in <module:Logging>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `instance_exec'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:136:in `run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/execution.rb:38:in `perform_now'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/execution.rb:24:in `block in execute'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/railtie.rb:28:in `block (4 levels) in <class:Railtie>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:87:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/reloader.rb:73:in `block in wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:83:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/reloader.rb:72:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/railtie.rb:27:in `block (3 levels) in <class:Railtie>'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `instance_exec'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:136:in `run_callbacks'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/execution.rb:22:in `execute'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activejob-5.2.3/lib/active_job/queue_adapters/sidekiq_adapter.rb:42:in `perform'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:87:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/reloader.rb:73:in `block in wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/execution_wrapper.rb:87:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/activesupport-5.2.3/lib/active_support/reloader.rb:72:in `wrap'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
Aug 08 20:15:55 ip-172-31-43-20 env[3813]: /home/shipit/.rvm/gems/ruby-2.5.1/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'

Downgrading back to 0.26.0 fixes the issue

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with app/models/shipit/commit.rb at refresh_check_runs! and shipit/octokit_check_runs.rb, then review the GitHub Checks API error shown in the Sidekiq log. Reproduce the 403 response after upgrading from 0.26.0 to 0.28.0 and determine the expected check-run behavior; done means the reported check-run failures are resolved or clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, ruby
Domain
ci-cd, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.