hephaestus 0.8.12 → 0.8.12.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/bin/hephaestus +10 -10
- data/lib/hephaestus/generators/app_generator.rb +14 -8
- data/lib/hephaestus/generators/base.rb +0 -1
- data/lib/hephaestus/generators/deployment_generator.rb +2 -2
- data/lib/hephaestus/version.rb +1 -1
- data/lib/hephaestus.rb +0 -1
- data/templates/hephaestus_env.sample +12 -0
- data/templates/hephaestus_github/dependabot.yml +27 -0
- data/templates/hephaestus_github/workflows/automerge.yml +14 -0
- data/templates/hephaestus_github/workflows/deploy.yml +30 -0
- data/templates/hephaestus_github/workflows/licenses.yml +17 -0
- data/templates/hephaestus_github/workflows/lint.yml +17 -0
- data/templates/hephaestus_github/workflows/security.yml +19 -0
- data/templates/hephaestus_github/workflows/sorbet.yml +19 -0
- data/templates/hephaestus_github/workflows/test.yml.tt +21 -0
- data/templates/hephaestus_github/workflows/updater.yml +18 -0
- data/templates/hephaestus_vscode/extensions.json +9 -0
- data/templates/hephaestus_vscode/launch.json +13 -0
- data/templates/hephaestus_vscode/settings.json +58 -0
- metadata +14 -2
- data/lib/hephaestus/exit_on_failure.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89c0585bf79ff89a4a35d183a6bdec69ec180effa6c5254aec22467093efeefa
|
4
|
+
data.tar.gz: 0aefd45fc0dd8549a845f49b510ba9ec7fbe991c85af3f7c9e65e79ed613c9ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dcf277f2074215cbf3b207d99534f5bdcf2fd6deb9ed62d6c10e3c87680da8184a30a7e5cfce6ce58e05df6173fb1d808e1fc48edb45f4f1ee4627af2bf2054
|
7
|
+
data.tar.gz: 96c5fbb95236e5fe15fd538742c89010e6d9a581b2cfbf3ce70677b7412a1a48301c8f58a68521b7f0b0d45a79f253ca0f5eb31f2475049584d322c491b6214a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# [v0.8.12.1] - 16-12-2024
|
2
|
+
## What's Changed
|
3
|
+
* general updates by @gjtorikian in https://github.com/yettoapp/hephaestus/pull/95
|
4
|
+
|
5
|
+
|
6
|
+
**Full Changelog**: https://github.com/yettoapp/hephaestus/compare/v0.8.12...v0.8.12.1
|
1
7
|
# [v0.8.12] - 16-12-2024
|
2
8
|
## What's Changed
|
3
9
|
* Update template generator by @gjtorikian in https://github.com/yettoapp/hephaestus/pull/93
|
data/bin/hephaestus
CHANGED
@@ -34,6 +34,16 @@ if (str = ARGV.first)
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
if ARGV.empty?
|
38
|
+
puts "Please provide a path for the new application"
|
39
|
+
puts
|
40
|
+
puts "See --help for more info"
|
41
|
+
exit 0
|
42
|
+
elsif ["-v", "--version"].include?(ARGV[0])
|
43
|
+
puts Hephaestus::VERSION
|
44
|
+
exit 0
|
45
|
+
end
|
46
|
+
|
37
47
|
if ENV.fetch("HEPHAESTUS_NO_EXTERNAL", "0") == "1"
|
38
48
|
puts Rainbow("Skipping Hephaestus check...").yellow
|
39
49
|
else
|
@@ -59,16 +69,6 @@ end
|
|
59
69
|
|
60
70
|
puts Rainbow("Looking good! Proceeding...").blue
|
61
71
|
|
62
|
-
if ARGV.empty?
|
63
|
-
puts "Please provide a path for the new application"
|
64
|
-
puts
|
65
|
-
puts "See --help for more info"
|
66
|
-
exit 0
|
67
|
-
elsif ["-v", "--version"].include?(ARGV[0])
|
68
|
-
puts Hephaestus::VERSION
|
69
|
-
exit 0
|
70
|
-
end
|
71
|
-
|
72
72
|
path = ARGV.first
|
73
73
|
if File.exist?(path)
|
74
74
|
puts Rainbow("\nError: The directory #{path} already exists.").red
|
@@ -8,7 +8,6 @@ require "tempfile"
|
|
8
8
|
require "hephaestus/app_name"
|
9
9
|
module Hephaestus
|
10
10
|
class AppGenerator < Rails::Generators::AppGenerator
|
11
|
-
include ExitOnFailure
|
12
11
|
include Hephaestus::AppName
|
13
12
|
|
14
13
|
hide!
|
@@ -55,12 +54,17 @@ module Hephaestus
|
|
55
54
|
|
56
55
|
def customize_gemfile
|
57
56
|
say(set_color("Customizing Gemfile...", :cyan))
|
58
|
-
|
57
|
+
template("Gemfile", "Gemfile", force: true)
|
58
|
+
# FIXME: unsure why, but when the generators are called, Rails expects Gemfiles in these locations?
|
59
|
+
copy_file("Gemfile", File.join(Hephaestus::AppGenerator.source_root, "Gemfile"))
|
60
|
+
copy_file("Gemfile", File.join(Hephaestus::AppGenerator.source_root, "..", "Gemfile"))
|
61
|
+
replace_in_files(Hephaestus::AppGenerator.source_root, %|ruby File.read(".ruby-version").strip|, %|ruby "#{Hephaestus::RUBY_VERSION}"|)
|
62
|
+
|
59
63
|
unless ENV.fetch("HEPHAESTUS_NO_EXTERNAL", "0") == "1"
|
60
64
|
capture_stdout do
|
61
|
-
|
62
|
-
|
63
|
-
|
65
|
+
run("BUNDLE_GEMFILE=\"#{destination_root}/Gemfile\" bundle install", abort_on_failure: false)
|
66
|
+
run("BUNDLE_GEMFILE=\"#{destination_root}/Gemfile\" bundle update")
|
67
|
+
run("BUNDLE_GEMFILE=\"#{destination_root}/Gemfile\" bundle lock --add-platform x86_64-linux")
|
64
68
|
end
|
65
69
|
end
|
66
70
|
end
|
@@ -69,7 +73,7 @@ module Hephaestus
|
|
69
73
|
say(set_color("Copying GitHub Actions...", :cyan))
|
70
74
|
|
71
75
|
capture_stdout do
|
72
|
-
directory(
|
76
|
+
directory("hephaestus_github", ".github", force: true)
|
73
77
|
end
|
74
78
|
end
|
75
79
|
|
@@ -77,7 +81,7 @@ module Hephaestus
|
|
77
81
|
say(set_color("Copying .vscode/...", :cyan))
|
78
82
|
|
79
83
|
capture_stdout do
|
80
|
-
directory(
|
84
|
+
directory("hephaestus_vscode", ".vscode")
|
81
85
|
end
|
82
86
|
end
|
83
87
|
|
@@ -132,7 +136,6 @@ module Hephaestus
|
|
132
136
|
directory("lib/schemas/api/2023-03-06", "lib/schemas/api/2023-03-06")
|
133
137
|
end
|
134
138
|
|
135
|
-
# This is h
|
136
139
|
# we do this to specify the template source, otherwise the generator wants to use Rails own `bin` dir
|
137
140
|
source = File.join(Hephaestus::Engine.root, "templates", "bin")
|
138
141
|
directory(source, "bin", force: true)
|
@@ -173,6 +176,9 @@ module Hephaestus
|
|
173
176
|
# generate("hephaestus:sorbet")
|
174
177
|
# end
|
175
178
|
|
179
|
+
replace_in_file(File.join("lib", "schemas", "api", "2023-03-06", "openapi.json"), %r{app/paths.json}, "#{plug_name}/paths.json")
|
180
|
+
File.rename(File.join(destination_root, "lib", "schemas", "api", "2023-03-06", "paths", "app.json"), File.join(destination_root, "lib", "schemas", "api", "2023-03-06", "paths", "#{plug_name}.json"))
|
181
|
+
|
176
182
|
say(set_color("Creating first commit...", :cyan))
|
177
183
|
capture_stdout do
|
178
184
|
invoke(:commit)
|
data/lib/hephaestus/version.rb
CHANGED
data/lib/hephaestus.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
# RAILS_MASTER_KEY="GENERATE_A_NEW_KEY"
|
2
|
+
YETTO_PLUG_PEM="REPLACE_ME_WITH_YETTO_VALUE"
|
3
|
+
YETTO_SIGNING_SECRET="super-secret"
|
4
|
+
YETTO_PLUG_ID="REPLACE_ME_WITH_YETTO_VALUE"
|
5
|
+
|
6
|
+
# don't forget to add these into your credentials file: `bin/rails credentials:edit --environment development`
|
7
|
+
# APP_ID: find this in 1pass
|
8
|
+
# APP_CLIENT_ID: find this in 1pass
|
9
|
+
# APP_CLIENT_SECRET: find this in 1pass
|
10
|
+
# APP_NONCE: generate this randomly
|
11
|
+
# JWT_PEM: find this in 1pass
|
12
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
version: 2
|
2
|
+
updates:
|
3
|
+
- package-ecosystem: "github-actions"
|
4
|
+
directory: "/"
|
5
|
+
schedule:
|
6
|
+
interval: weekly
|
7
|
+
day: monday
|
8
|
+
time: "09:00"
|
9
|
+
timezone: "Etc/UTC"
|
10
|
+
groups:
|
11
|
+
github-actions:
|
12
|
+
patterns:
|
13
|
+
- "*"
|
14
|
+
open-pull-requests-limit: 10
|
15
|
+
|
16
|
+
- package-ecosystem: bundler
|
17
|
+
directory: "/"
|
18
|
+
schedule:
|
19
|
+
interval: monthly
|
20
|
+
day: monday
|
21
|
+
time: "09:00"
|
22
|
+
timezone: "Etc/UTC"
|
23
|
+
open-pull-requests-limit: 10
|
24
|
+
groups:
|
25
|
+
bundler-dependencies:
|
26
|
+
patterns:
|
27
|
+
- "*"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Deployments
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches:
|
5
|
+
- production
|
6
|
+
workflow_dispatch:
|
7
|
+
inputs:
|
8
|
+
target:
|
9
|
+
required: true
|
10
|
+
type: choice
|
11
|
+
description: The name of the environment that you're deploying the application to
|
12
|
+
options:
|
13
|
+
- staging
|
14
|
+
- production
|
15
|
+
forced:
|
16
|
+
description: "Whether to perform the deploy regardless of test state."
|
17
|
+
required: false
|
18
|
+
type: boolean
|
19
|
+
default: false
|
20
|
+
|
21
|
+
jobs:
|
22
|
+
deployment:
|
23
|
+
name: Deploy app
|
24
|
+
uses: yettoapp/actions/.github/workflows/fly_deployment.yml@main
|
25
|
+
with:
|
26
|
+
target: ${{ github.event_name != 'workflow_dispatch' && 'production' || inputs.target }}
|
27
|
+
forced: ${{ github.event_name == 'workflow_dispatch' && inputs.forced || false }}
|
28
|
+
secrets:
|
29
|
+
gh_token: ${{ secrets.GH_DEPLOYMENTS_TOKEN }}
|
30
|
+
fly_token: ${{ inputs.target == 'staging' && secrets.FLY_STAGING_API_TOKEN || secrets.FLY_PRODUCTION_API_TOKEN }}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
name: License
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
pull_request_target:
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
pull-requests: write
|
9
|
+
contents: write
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
verify:
|
13
|
+
uses: yettoapp/actions/.github/workflows/run_license_verify.yml@main
|
14
|
+
secrets:
|
15
|
+
gh_token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
16
|
+
with:
|
17
|
+
ruby: true
|
@@ -0,0 +1,17 @@
|
|
1
|
+
name: Linting
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
paths:
|
6
|
+
- "**/*.rb"
|
7
|
+
|
8
|
+
env:
|
9
|
+
RAILS_ENV: test
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
verify:
|
13
|
+
uses: yettoapp/actions/.github/workflows/lint.yml@main
|
14
|
+
secrets:
|
15
|
+
gh_token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
16
|
+
with:
|
17
|
+
ruby: true
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: Security
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
pull_request_target:
|
6
|
+
|
7
|
+
env:
|
8
|
+
RAILS_ENV: test
|
9
|
+
BUNDLE_WITH: "ci"
|
10
|
+
|
11
|
+
permissions:
|
12
|
+
pull-requests: write
|
13
|
+
contents: write
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
ruby:
|
17
|
+
uses: yettoapp/actions/.github/workflows/ruby_security_checks.yml@main
|
18
|
+
secrets:
|
19
|
+
gh_token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: Sorbet
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request_target:
|
5
|
+
paths:
|
6
|
+
- "**/*.rb"
|
7
|
+
- "Gemfile.lock"
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
update:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v4
|
15
|
+
with:
|
16
|
+
ref: ${{ github.head_ref }}
|
17
|
+
token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
18
|
+
|
19
|
+
- uses: yettoapp/actions/run-sorbet-update@main
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
pull_request_target:
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
ruby:
|
9
|
+
uses: yettoapp/actions/.github/workflows/rails_sqlite_test_suite.yml@main
|
10
|
+
secrets:
|
11
|
+
gh_token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
12
|
+
with:
|
13
|
+
system_tests: false
|
14
|
+
|
15
|
+
docker:
|
16
|
+
uses: yettoapp/actions/.github/workflows/test_dockerbuild.yml@main
|
17
|
+
secrets:
|
18
|
+
gh_token: ${{ secrets.GH_SISYPHUS_YETTO_REPO_TOKEN }}
|
19
|
+
fly_token: ${{ secrets.FLY_PRODUCTION_API_TOKEN }}
|
20
|
+
with:
|
21
|
+
app_name: "plug-<%= plug_name %>-production"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
name: Updates
|
2
|
+
on:
|
3
|
+
workflow_dispatch:
|
4
|
+
inputs:
|
5
|
+
action:
|
6
|
+
required: true
|
7
|
+
type: string
|
8
|
+
value:
|
9
|
+
required: false
|
10
|
+
type: string
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
update:
|
14
|
+
name: Update app
|
15
|
+
uses: yettoapp/actions/.github/workflows/updater.yml@main
|
16
|
+
with:
|
17
|
+
action: ${{ inputs.action }}
|
18
|
+
value: ${{ inputs.value }}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
// Use IntelliSense to learn about possible attributes.
|
3
|
+
// Hover to view descriptions of existing attributes.
|
4
|
+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
5
|
+
"version": "0.2.0",
|
6
|
+
"configurations": [
|
7
|
+
{
|
8
|
+
"type": "rdbg",
|
9
|
+
"name": "Attach rdbg",
|
10
|
+
"request": "attach"
|
11
|
+
},
|
12
|
+
]
|
13
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
{
|
2
|
+
"[javascript]" : {
|
3
|
+
"editor.codeActionsOnSave" : {
|
4
|
+
"source.fixAll.eslint" : "explicit"
|
5
|
+
}
|
6
|
+
},
|
7
|
+
"[json]" : {
|
8
|
+
"editor.defaultFormatter" : "vscode.json-language-features"
|
9
|
+
},
|
10
|
+
"[markdown]" : {
|
11
|
+
"editor.defaultFormatter" : "esbenp.prettier-vscode"
|
12
|
+
},
|
13
|
+
"[ruby]" : {
|
14
|
+
"editor.defaultFormatter" : "Shopify.ruby-lsp"
|
15
|
+
},
|
16
|
+
"files.associations" : {
|
17
|
+
"*.css" : "tailwindcss",
|
18
|
+
"*.rbedited" : "ruby",
|
19
|
+
"*.rbi" : "ruby",
|
20
|
+
"*.rbupdated" : "ruby"
|
21
|
+
},
|
22
|
+
"peacock.color" : "#26FF9A",
|
23
|
+
"rubyLsp.enabledFeatures" : {
|
24
|
+
"codeActions" : true,
|
25
|
+
"diagnostics" : true,
|
26
|
+
"documentHighlights" : true,
|
27
|
+
"documentLink" : true,
|
28
|
+
"documentSymbols" : true,
|
29
|
+
"foldingRanges" : true,
|
30
|
+
"formatting" : true,
|
31
|
+
"onTypeFormatting" : true,
|
32
|
+
"selectionRanges" : true,
|
33
|
+
"semanticHighlighting" : true
|
34
|
+
},
|
35
|
+
"tailwindCSS.emmetCompletions" : true,
|
36
|
+
"tailwindCSS.includeLanguages" : {
|
37
|
+
"plaintext" : "html"
|
38
|
+
},
|
39
|
+
"workbench.colorCustomizations" : {
|
40
|
+
"activityBar.activeBackground" : "#59ffb2",
|
41
|
+
"activityBar.background" : "#59ffb2",
|
42
|
+
"activityBar.foreground" : "#15202b",
|
43
|
+
"activityBar.inactiveForeground" : "#15202b99",
|
44
|
+
"activityBarBadge.background" : "#c480ff",
|
45
|
+
"activityBarBadge.foreground" : "#15202b",
|
46
|
+
"commandCenter.border" : "#15202b99",
|
47
|
+
"sash.hoverBorder" : "#59ffb2",
|
48
|
+
"statusBar.background" : "#26ff9a",
|
49
|
+
"statusBar.foreground" : "#15202b",
|
50
|
+
"statusBarItem.hoverBackground" : "#00f281",
|
51
|
+
"statusBarItem.remoteBackground" : "#26ff9a",
|
52
|
+
"statusBarItem.remoteForeground" : "#15202b",
|
53
|
+
"titleBar.activeBackground" : "#26ff9a",
|
54
|
+
"titleBar.activeForeground" : "#15202b",
|
55
|
+
"titleBar.inactiveBackground" : "#26ff9a99",
|
56
|
+
"titleBar.inactiveForeground" : "#15202b99"
|
57
|
+
}
|
58
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hephaestus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.12
|
4
|
+
version: 0.8.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
@@ -430,7 +430,6 @@ files:
|
|
430
430
|
- lib/hephaestus/app_builder.rb
|
431
431
|
- lib/hephaestus/app_name.rb
|
432
432
|
- lib/hephaestus/engine.rb
|
433
|
-
- lib/hephaestus/exit_on_failure.rb
|
434
433
|
- lib/hephaestus/generators/app_generator.rb
|
435
434
|
- lib/hephaestus/generators/base.rb
|
436
435
|
- lib/hephaestus/generators/config_generator.rb
|
@@ -492,7 +491,20 @@ files:
|
|
492
491
|
- templates/config/routes.rb.tt
|
493
492
|
- templates/db/queue_schema.rb
|
494
493
|
- templates/db/schema.rb
|
494
|
+
- templates/hephaestus_env.sample
|
495
|
+
- templates/hephaestus_github/dependabot.yml
|
496
|
+
- templates/hephaestus_github/workflows/automerge.yml
|
497
|
+
- templates/hephaestus_github/workflows/deploy.yml
|
498
|
+
- templates/hephaestus_github/workflows/licenses.yml
|
499
|
+
- templates/hephaestus_github/workflows/lint.yml
|
500
|
+
- templates/hephaestus_github/workflows/security.yml
|
501
|
+
- templates/hephaestus_github/workflows/sorbet.yml
|
502
|
+
- templates/hephaestus_github/workflows/test.yml.tt
|
503
|
+
- templates/hephaestus_github/workflows/updater.yml
|
495
504
|
- templates/hephaestus_gitignore
|
505
|
+
- templates/hephaestus_vscode/extensions.json
|
506
|
+
- templates/hephaestus_vscode/launch.json
|
507
|
+
- templates/hephaestus_vscode/settings.json
|
496
508
|
- templates/lib/plug_app/schemas/api/2023-03-06/components/parameters/headers/yetto.json
|
497
509
|
- templates/lib/plug_app/schemas/api/2023-03-06/components/parameters/plugInstallation.json
|
498
510
|
- templates/lib/plug_app/schemas/api/2023-03-06/components/schemas/plug.json
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# typed: false
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require "active_support/concern"
|
5
|
-
require "English"
|
6
|
-
|
7
|
-
module Hephaestus
|
8
|
-
module ExitOnFailure
|
9
|
-
extend ActiveSupport::Concern
|
10
|
-
|
11
|
-
def bundle_command(*)
|
12
|
-
super
|
13
|
-
exit(false) if $CHILD_STATUS.exitstatus.nonzero? # rubocop:disable Rails/Exit
|
14
|
-
end
|
15
|
-
|
16
|
-
module ClassMethods
|
17
|
-
def exit_on_failure?
|
18
|
-
true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|