Fix CI pipeline: use Docker Hub image + fix security audit #24

Merged
ldraney merged 1 commit from fix-pipeline-image-pull into main 2026-05-10 20:08:10 +00:00
Owner

Summary

  • Woodpecker agent nodes cannot pull images from Harbor (exit 126 on both internal and external URLs)
  • Switched test step to archlinux:latest from Docker Hub with inline dep installation
  • Updated omniauth 1.9.2 → 2.1.4 to resolve CVE-2015-9284
  • Fixed rubocop SpaceInsideArrayLiteralBrackets offenses

Changes

  • .woodpecker.yaml: Replace Harbor image with archlinux:latest, add inline pacman install of ruby/libyaml/base-devel/git
  • Gemfile.lock: Update omniauth 1.9.2 → 2.1.4 (+ rack, rack-session, rackup, rack-protection)
  • config/initializers/omniauth.rb: Fix array bracket spacing
  • config/routes.rb: Fix array bracket spacing

Test Plan

  • Pipeline #11 passes all three test gates (bundle-audit, brakeman, rubocop)
  • Verify merge pipeline succeeds on main (build-and-push + kustomize tag update)
  • No regressions in auth flow (omniauth 2.x is backwards compatible with rails_csrf_protection gem)

Review Checklist

  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Closes #23
  • ldraney/pal-enterprises #19 — original pipeline implementation (closed)
## Summary - Woodpecker agent nodes cannot pull images from Harbor (exit 126 on both internal and external URLs) - Switched test step to `archlinux:latest` from Docker Hub with inline dep installation - Updated omniauth 1.9.2 → 2.1.4 to resolve CVE-2015-9284 - Fixed rubocop `SpaceInsideArrayLiteralBrackets` offenses ## Changes - `.woodpecker.yaml`: Replace Harbor image with `archlinux:latest`, add inline pacman install of ruby/libyaml/base-devel/git - `Gemfile.lock`: Update omniauth 1.9.2 → 2.1.4 (+ rack, rack-session, rackup, rack-protection) - `config/initializers/omniauth.rb`: Fix array bracket spacing - `config/routes.rb`: Fix array bracket spacing ## Test Plan - [x] Pipeline #11 passes all three test gates (bundle-audit, brakeman, rubocop) - [ ] Verify merge pipeline succeeds on main (build-and-push + kustomize tag update) - [ ] No regressions in auth flow (omniauth 2.x is backwards compatible with rails_csrf_protection gem) ## Review Checklist - [x] No secrets committed - [x] No unnecessary file changes - [x] Commit messages are descriptive ## Related Notes - Closes #23 - `ldraney/pal-enterprises #19` — original pipeline implementation (closed)
Fix CI pipeline: use Docker Hub image + fix security audit
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
627ed66d86
The Woodpecker agent nodes cannot pull images from Harbor (neither
cluster-internal nor external Tailscale URL). Use archlinux:latest
from Docker Hub with inline dependency installation, matching the
pattern used by other platform pipelines.

Also fixes:
- Update omniauth 1.9.2 → 2.1.4 (CVE-2015-9284 CSRF fix)
- Fix rubocop SpaceInsideArrayLiteralBrackets offenses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

PR #24 Review

CI Pipeline

  • Switching to archlinux:latest from Docker Hub is valid fix for image pull failure (#23)
  • Inline package install (~30-60s cost per run) acceptable for unblocking; pre-built image is a follow-up optimization

OmniAuth Upgrade (1.9.2 → 2.1.4)

  • OmniAuth 2.x defaults POST-only request phase. Code explicitly sets allowed_request_methods = [:post, :get] for Keycloak redirect flow — intentional
  • omniauth-rails_csrf_protection gem present, pkce: true set — good security posture
  • Rack 2.2 → 3.2 is compatible with Rails 8.1

Blockers

None.

Nits

  1. CI installs packages from scratch each run — follow-up to publish ruby-arch to Docker Hub
  2. Dockerfile still references Harbor (fine — Kaniko runs in-cluster)
  3. Consider comment on why GET is allowed in allowed_request_methods (Keycloak redirect)

SOP

  • Branch naming: fix-pipeline-image-pull vs 23-fix-pipeline-image-pull — minor deviation, non-blocking for hotfix
  • PR body follows template ✓
  • No secrets committed ✓

VERDICT: APPROVED

Correctly fixes CI pipeline image pull (#23), upgrades omniauth for CVE-2015-9284, cleans rubocop offenses. No blockers.

## PR #24 Review ### CI Pipeline - Switching to `archlinux:latest` from Docker Hub is valid fix for image pull failure (#23) - Inline package install (~30-60s cost per run) acceptable for unblocking; pre-built image is a follow-up optimization ### OmniAuth Upgrade (1.9.2 → 2.1.4) - OmniAuth 2.x defaults POST-only request phase. Code explicitly sets `allowed_request_methods = [:post, :get]` for Keycloak redirect flow — intentional - `omniauth-rails_csrf_protection` gem present, `pkce: true` set — good security posture - Rack 2.2 → 3.2 is compatible with Rails 8.1 ### Blockers None. ### Nits 1. CI installs packages from scratch each run — follow-up to publish ruby-arch to Docker Hub 2. Dockerfile still references Harbor (fine — Kaniko runs in-cluster) 3. Consider comment on why GET is allowed in `allowed_request_methods` (Keycloak redirect) ### SOP - Branch naming: `fix-pipeline-image-pull` vs `23-fix-pipeline-image-pull` — minor deviation, non-blocking for hotfix - PR body follows template ✓ - No secrets committed ✓ ### VERDICT: APPROVED Correctly fixes CI pipeline image pull (#23), upgrades omniauth for CVE-2015-9284, cleans rubocop offenses. No blockers.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/pal-enterprises!24
No description provided.