hephaestus 0.8.14 → 0.8.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6f1564007f86900d81b992b6df2f93428859cb5a8c6c22a15a5cef29eb7d198
4
- data.tar.gz: bd340377613e44ea895a03871835863cc059cd740c9800c64e56e19b481ecc4a
3
+ metadata.gz: 66776a01bac23f71c5c9f71a7e4402537d6fd0ce5bb610cfccdef823e5440d6f
4
+ data.tar.gz: 0604c98bfb0f1ab6cdd4ec752c5d882c5112533cb848db0c782f54e08c36ec64
5
5
  SHA512:
6
- metadata.gz: 4b1399f84f3bb750c0b8de78a729d3e2b47c43bfb8abf5d6f611928162dd2a9c61b7044a39c4348626e2ff819f0eb9b4ff0e67f6dcb78a3c318616a3b42e452c
7
- data.tar.gz: 855af63634afe1b2e6a6cb1af37358270f7508c2e8720426c512f0abb7c8b6e6b7eeae661b8237149906c3f86e806e08aeb53b7896f9eaff50c11b5ce4720d20
6
+ metadata.gz: dde18716b4669fd1b6d361aca85d7f26784e9321df6b2c8215103b014b6fd94aff01b70fa564ce356b9119e1495abeefe585e86cab6899b26195ba935a1e3183
7
+ data.tar.gz: 57ff4c8ca8ac52aafe85421dbc5fac30e26b43d2ce5f5ed4fce9f4396d48bbb945c4802ccdfc5fd50d6915ed10d204d37d0893a3542a9107abfec810d54f6082
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # [v0.8.15.1] - 16-01-2025
2
+ ## What's Changed
3
+ * Bugfixes by @gjtorikian in https://github.com/yettoapp/hephaestus/pull/107
4
+
5
+
6
+ **Full Changelog**: https://github.com/yettoapp/hephaestus/compare/v0.8.15...v0.8.15.1
7
+ # [v0.8.15] - 15-01-2025
8
+ ## What's Changed
9
+ * Move hephaestus' plug scripts to subfolder + other fixups by @gjtorikian in https://github.com/yettoapp/hephaestus/pull/104
10
+
11
+
12
+ **Full Changelog**: https://github.com/yettoapp/hephaestus/compare/v0.8.14...v0.8.15
1
13
  # [v0.8.14] - 19-12-2024
2
14
  ## What's Changed
3
15
  * Add scripting logic to Hephaestus by @gjtorikian in https://github.com/yettoapp/hephaestus/pull/102
data/bin/hephaestus CHANGED
@@ -101,7 +101,8 @@ end
101
101
  case ARGV[0]
102
102
  when "run"
103
103
  ENV["HEPHAESTUS_CAPITAL_PLUG_NAME"] = `grep 'module Plug\S*' config/application.rb | sed -E 's/module Plug//'`.strip
104
- script_dir = File.join(ENGINE_ROOT, "script")
104
+ ENV["HEPHAESTUS_LOWERCASE_PLUG_NAME"] = ENV["HEPHAESTUS_CAPITAL_PLUG_NAME"].underscore
105
+ script_dir = File.join(ENGINE_ROOT, "script", "templates")
105
106
  puts `#{File.join(script_dir, ARGV[1..-1].join(' '))}`
106
107
  else
107
108
  Hephaestus::AppGenerator.start
data/config/queue.yml CHANGED
@@ -4,9 +4,8 @@ default: &default
4
4
  batch_size: 500
5
5
  workers:
6
6
  - queues: [plug_<%= plug_shortname %>_high_priority*, plug_<%= plug_shortname %>_mid_priority*, plug_<%= plug_shortname %>_low_priority*]
7
- threads: 5
8
7
  - queues: "plug_<%= plug_shortname %>_*" # default, mailers, etc
9
- threads: 3
8
+ threads: 1
10
9
 
11
10
  development:
12
11
  <<: *default
@@ -10,12 +10,12 @@ module Hephaestus
10
10
  "plug-#{Rails.application.class.module_parent.name.underscore[5..-1]}"
11
11
  end
12
12
 
13
- # like, `slack`, github, or `html_proofer`
13
+ # like, `slack`, `github`, or `html_proofer`
14
14
  def plug_name
15
15
  app_name.split("-", 2).last
16
16
  end
17
17
 
18
- # like, `Slack`, `GitHub`, or `html_proofer
18
+ # like, `Slack`, `GitHub`, or `HtmlProofer`
19
19
  def capital_plug_name
20
20
  plug_name.camelcase
21
21
  end
@@ -70,8 +70,28 @@ module Hephaestus
70
70
  end
71
71
 
72
72
  def op_read(label)
73
- %x(#{include_sudo?}op read "#{label}").chomp.tap do
74
- raise "Failed to fetch `#{label}` from 1Password" unless $CHILD_STATUS.success?
73
+ if within_op_rate_limit?
74
+ %x(#{include_sudo?}op read "#{label}").chomp.tap do
75
+ Rails.logger.error("Failed to fetch `#{label}` from 1Password") && return unless $CHILD_STATUS.success?
76
+ end
77
+ end
78
+ end
79
+
80
+ def within_op_rate_limit?
81
+ results = %x(#{include_sudo?}op service-account ratelimit --format=json).chomp.tap do |_result|
82
+ unless $CHILD_STATUS.success?
83
+ Rails.logger.error("Failed to retrieve rate limits")
84
+ return false
85
+ end
86
+ end
87
+
88
+ JSON.parse(results).each do |result|
89
+ if result["remaining"] < 20
90
+ Rails.logger.error("You're wildly close to the end of your OP rate limits! Check for problems. I can't continue.")
91
+ false
92
+ else
93
+ true
94
+ end
75
95
  end
76
96
  end
77
97
 
@@ -41,6 +41,7 @@ module Hephaestus
41
41
  else
42
42
  case validated_request.error.type
43
43
  when :not_found
44
+ Rails.logger.error("Request path not found. Is it defined in openai.json? ") if print_user_api_errors?
44
45
  [Hephaestus::HTTP::NOT_FOUND_I, { "Content-Type" => "application/json" }, [format_str("Not Found")]]
45
46
  else
46
47
  error_message = if validated_request.error.errors.present?
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Hephaestus
5
- VERSION = "0.8.14"
5
+ VERSION = "0.8.15.1"
6
6
  RAILS_VERSION = ">= 8.0"
7
7
  RUBY_VERSION = File
8
8
  .read("#{File.dirname(__FILE__)}/../../.ruby-version")
@@ -1,5 +1,5 @@
1
1
  {
2
- "CreateAppMessage": {
2
+ "Create<%= capital_plug_name %>Message": {
3
3
  "type": "object",
4
4
  "required": [
5
5
  "yetto"
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "additionalProperties": false
79
79
  },
80
- "ConfigureApp": {
80
+ "CreatedPlugInstallation": {
81
81
  "type": "object",
82
82
  "required": [
83
83
  "yetto"
@@ -18,19 +18,6 @@
18
18
  "schema": {
19
19
  "$ref": "../components/schemas/plug.json#/something"
20
20
  }
21
- },
22
- "example": {
23
- "message": {
24
- "text_content": "Hello _World_",
25
- "is_public": true,
26
- "author": {
27
- "name": "John Doe"
28
- },
29
- "metadata": {}
30
- },
31
- "creator": {
32
- "id": "usr_1234567890"
33
- }
34
21
  }
35
22
  }
36
23
  },
@@ -10,7 +10,7 @@
10
10
  "content": {
11
11
  "application/json": {
12
12
  "schema": {
13
- "$ref": "../../components/schemas/yetto.json#/ConfigureApp"
13
+ "$ref": "../../components/schemas/yetto.json#/CreatedPlugInstallation"
14
14
  }
15
15
  }
16
16
  }
@@ -294,3 +294,4 @@ app/javascript/controllers/*.js
294
294
  !app/javascript/controllers/index.js
295
295
 
296
296
  security_results.json
297
+ vendor/cache/
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ bundle exec hephaestus run edit-credentials "$1"
@@ -4,4 +4,4 @@ set -e
4
4
 
5
5
  hostname="$(hostname | tr '[:upper:]' '[:lower:]' | tr '.' '-')"
6
6
 
7
- ngrok http --region=us --domain=${hostname}-plug-<%= plug_name %>.ngrok.io 6661
7
+ ngrok http --domain=${hostname}-plug-<%= plug_name %>.ngrok.io 6661
@@ -176,13 +176,14 @@ class <%= capital_plug_name %>ControllerTest < ActionDispatch::IntegrationTest
176
176
  assert_response :bad_request
177
177
  end
178
178
 
179
- test "webhook passes to job when issue_comment is created" do
180
- assert_enqueued_with(job: Process<%= capital_plug_name %>IssueCommentJob) do
181
- plug(:post, "/webhook", body: @valid_issue_comment_created_webhook_body, headers: { "HTTP_X_GITHUB_EVENT" => "issue_comment", "HTTP_X_HUB_SIGNATURE_256" => auth_header(@valid_issue_comment_created_webhook_body) })
182
- end
179
+ # TODO: Add your own controller tests here; for example
183
180
 
184
- assert_response :ok
185
- end
181
+ # test "webhook passes to job when issue_comment is created" do
182
+ # assert_enqueued_with(job: Process<%= capital_plug_name %>IssueCommentJob) do
183
+ # plug(:post, "/webhook", body: @valid_issue_comment_created_webhook_body, headers: { "HTTP_X_GITHUB_EVENT" => "issue_comment", "HTTP_X_HUB_SIGNATURE_256" => auth_header(@valid_issue_comment_created_webhook_body) })
184
+ # end
185
+ #
186
+ # assert_response :ok
187
+ # end
186
188
 
187
- # TODO: Add your own controller tests here
188
189
  end
@@ -104,7 +104,7 @@ class YettoControllerTest < ActionDispatch::IntegrationTest
104
104
  assert_response :bad_request
105
105
  end
106
106
 
107
- test "it performs some job to do something to your platform" do
107
+ test "it performs **SomeJob** to **do something** to your platform" do
108
108
  incoming_body = @after_create_message
109
109
 
110
110
  job_args = {
@@ -0,0 +1,3 @@
1
+ {
2
+ "token_type": "bearer"
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "access_token": "ghu_access_token",
3
+ "expires_in": 28800,
4
+ "refresh_token": "ghr_",
5
+ "refresh_token_expires_in": 15811200,
6
+ "scope": "",
7
+ "token_type": "bearer"
8
+ }
@@ -0,0 +1,7 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ require "test_helper"
5
+
6
+ class SomeJobTest < ActiveJob::TestCase
7
+ end
@@ -16,7 +16,7 @@ module Webmocks
16
16
 
17
17
  # sig { params(state: String, valid: T::Boolean, status: Integer).returns(T.untyped) }
18
18
  # def stub_request_user_access_token(state, valid: true, status: 200)
19
- # response_body = JSON.parse(file_fixture_path("gh_access_token", valid ? "valid.json" : "invalid.json").read).deep_symbolize_keys
19
+ # response_body = JSON.parse(file_fixture_path("access_token", valid ? "valid.json" : "invalid.json").read).deep_symbolize_keys
20
20
  # stub_request(:post, "https://github.com/login/oauth/access_token?#{token_query_params(state)}")
21
21
  # .to_return(
22
22
  # status: status,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hephaestus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.14
4
+ version: 0.8.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-19 00:00:00.000000000 Z
11
+ date: 2025-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootsnap
@@ -377,7 +377,7 @@ dependencies:
377
377
  description: 'Hephaestus is a Rails generator to create plugs for Yetto.
378
378
 
379
379
  '
380
- email:
380
+ email:
381
381
  executables:
382
382
  - hephaestus
383
383
  extensions: []
@@ -445,9 +445,9 @@ files:
445
445
  - lib/hephaestus/version.rb
446
446
  - lib/tasks/hephaestus_tasks.rake
447
447
  - lib/tasks/rubocop.rake
448
- - script/edit-credentials
449
- - script/setup-vault
450
- - script/vault.json
448
+ - script/templates/edit-credentials
449
+ - script/templates/setup-vault
450
+ - script/templates/vault.json
451
451
  - templates/app/controllers/app_controller.rb.tt
452
452
  - templates/app/controllers/application_controller.rb
453
453
  - templates/app/controllers/concerns/authable.rb.tt
@@ -495,7 +495,7 @@ files:
495
495
  - templates/lib/schemas/api/2023-03-06/components/parameters/plugInstallation.json
496
496
  - templates/lib/schemas/api/2023-03-06/components/schemas/plug.json
497
497
  - templates/lib/schemas/api/2023-03-06/components/schemas/responses.json
498
- - templates/lib/schemas/api/2023-03-06/components/schemas/yetto.json
498
+ - templates/lib/schemas/api/2023-03-06/components/schemas/yetto.json.tt
499
499
  - templates/lib/schemas/api/2023-03-06/openapi.json
500
500
  - templates/lib/schemas/api/2023-03-06/paths/app.json
501
501
  - templates/lib/schemas/api/2023-03-06/paths/yetto/message_created.json
@@ -517,6 +517,7 @@ files:
517
517
  - templates/root/hephaestus_ruby-version
518
518
  - templates/script/docker-build-prod.tt
519
519
  - templates/script/docker-run.tt
520
+ - templates/script/edit-credentials
520
521
  - templates/script/hmac_text
521
522
  - templates/script/licenses
522
523
  - templates/script/ngrok.tt
@@ -528,9 +529,12 @@ files:
528
529
  - templates/test/controllers/root_controller_test.rb
529
530
  - templates/test/controllers/settings_controller_test.rb.tt
530
531
  - templates/test/controllers/yetto_controller_test.rb
532
+ - templates/test/fixtures/files/access_token/invalid.json
533
+ - templates/test/fixtures/files/access_token/valid.json
531
534
  - templates/test/fixtures/files/fake_pem_file/fake.pem
532
535
  - templates/test/fixtures/files/plug_installation_settings/invalid.json
533
536
  - templates/test/fixtures/files/plug_installation_settings/valid.json
537
+ - templates/test/jobs/some_job_test.rb
534
538
  - templates/test/support/rails.rb
535
539
  - templates/test/support/webmocks/app_webmock.rb.tt
536
540
  - templates/test/test_helper.rb
@@ -540,7 +544,7 @@ homepage: http://github.com/yettoapp/hephaestus
540
544
  licenses:
541
545
  - MIT
542
546
  metadata: {}
543
- post_install_message:
547
+ post_install_message:
544
548
  rdoc_options:
545
549
  - "--charset=UTF-8"
546
550
  require_paths:
@@ -558,7 +562,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
558
562
  version: 3.4.7
559
563
  requirements: []
560
564
  rubygems_version: 3.5.22
561
- signing_key:
565
+ signing_key:
562
566
  specification_version: 4
563
567
  summary: Generate a Rails app that can be used to create plugs for Yetto.
564
568
  test_files: []
File without changes
File without changes