Class: Rake::GemMaintenance::WoodpeckerSecretStore

Inherits:
Object
  • Object
show all
Defined in:
lib/rake/gem/maintenance/woodpecker_secret_store.rb

Overview

Creates or updates an org-level secret in a Woodpecker CI server. SSL verification is disabled because Woodpecker is typically served on an internal network with a private CA.

Instance Method Summary collapse

Constructor Details

#initialize(server:, org:, token:) ⇒ WoodpeckerSecretStore

Returns a new instance of WoodpeckerSecretStore.



9
10
11
12
13
# File 'lib/rake/gem/maintenance/woodpecker_secret_store.rb', line 9

def initialize(server:, org:, token:)
  @server = server
  @org = org
  @token = token
end

Instance Method Details

#store(secret_name, value, events: %w[push tag manual])) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rake/gem/maintenance/woodpecker_secret_store.rb', line 15

def store(secret_name, value, events: %w[push tag manual])
  org_id = find_org_id
  abort "[ERROR] Woodpecker org '#{@org}' not found on #{@server}." unless org_id

  if secret_exists?(org_id, secret_name)
    patch("/api/orgs/#{org_id}/secrets/#{secret_name}",
          { value: value, events: events, images: [] })
  else
    post("/api/orgs/#{org_id}/secrets",
         { name: secret_name, value: value, events: events, images: [] })
  end
end