wassup 0.3.2 → 0.4.0
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/Gemfile +3 -0
- data/Gemfile.lock +9 -6
- data/docs/docusaurus.config.js +3 -2
- data/docs/package-lock.json +56 -30
- data/docs/src/components/HomepageFeatures.module.css +13 -0
- data/docs/src/components/HomepageFeatures.tsx +3 -3
- data/docs/src/css/custom.css +25 -8
- data/docs/src/pages/index.module.css +40 -1
- data/docs/src/pages/index.tsx +20 -2
- data/docs/src/pages/showcase.md +1 -0
- data/examples/basic/Supfile +17 -98
- data/examples/debug/Supfile +1 -1
- data/lib/wassup/app.rb +1 -0
- data/lib/wassup/helpers/github.rb +9 -4
- data/lib/wassup/pane.rb +43 -4
- data/lib/wassup/pane_builder.rb +15 -1
- data/lib/wassup/panes/circleci.rb +35 -0
- data/lib/wassup/panes/github.rb +92 -0
- data/lib/wassup/panes/netlify.rb +36 -0
- data/lib/wassup/panes/shortcut.rb +30 -0
- data/lib/wassup/version.rb +1 -1
- data/lib/wassup.rb +5 -0
- metadata +8 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be426163a7aa15bbb7b9ce4c02cce9facffa0cc44bc5e50cb1de5ef770eb63e0
|
|
4
|
+
data.tar.gz: d47f33e03030ca9e43c30105ad308a6b48a358603bc0a9681d3b52a49f99d47f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c963ab844d3d509e092d6d937a032dacb497079f980367c372b1b48de80c37696933190eb2e9f878a9a841ce9ab496645c04eb00e303147ad08331e70a867fd3
|
|
7
|
+
data.tar.gz: 6f0e4dd7432790afb71be30f20b377966185a61a9b079d73acca4a341825677911f435eb02adba390daffd348134807fdf67a4986f0c776bad4d6ed3058fded0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
wassup (0.2
|
|
4
|
+
wassup (0.3.2)
|
|
5
5
|
curses
|
|
6
6
|
rest-client
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
|
|
11
|
+
colorize (0.8.1)
|
|
12
|
+
curses (1.4.4)
|
|
12
13
|
diff-lcs (1.4.4)
|
|
13
14
|
domain_name (0.5.20190701)
|
|
14
15
|
unf (>= 0.0.5, < 1.0.0)
|
|
15
16
|
http-accept (1.7.0)
|
|
16
|
-
http-cookie (1.0.
|
|
17
|
+
http-cookie (1.0.5)
|
|
17
18
|
domain_name (~> 0.5)
|
|
18
19
|
mime-types (3.4.1)
|
|
19
20
|
mime-types-data (~> 3.2015)
|
|
20
|
-
mime-types-data (3.
|
|
21
|
+
mime-types-data (3.2023.0218.1)
|
|
21
22
|
netrc (0.11.0)
|
|
22
23
|
rake (12.3.3)
|
|
23
24
|
rest-client (2.1.0)
|
|
@@ -40,15 +41,17 @@ GEM
|
|
|
40
41
|
rspec-support (3.10.3)
|
|
41
42
|
unf (0.1.4)
|
|
42
43
|
unf_ext
|
|
43
|
-
unf_ext (0.0.8)
|
|
44
|
+
unf_ext (0.0.8.2)
|
|
44
45
|
|
|
45
46
|
PLATFORMS
|
|
46
47
|
arm64-darwin-21
|
|
47
48
|
|
|
48
49
|
DEPENDENCIES
|
|
50
|
+
colorize
|
|
49
51
|
rake (~> 12.0)
|
|
52
|
+
rest-client
|
|
50
53
|
rspec (~> 3.0)
|
|
51
54
|
wassup!
|
|
52
55
|
|
|
53
56
|
BUNDLED WITH
|
|
54
|
-
2.2.
|
|
57
|
+
2.2.33
|
data/docs/docusaurus.config.js
CHANGED
|
@@ -53,8 +53,9 @@ const config = {
|
|
|
53
53
|
type: 'doc',
|
|
54
54
|
docId: 'intro',
|
|
55
55
|
position: 'left',
|
|
56
|
-
label: '
|
|
56
|
+
label: 'Docs',
|
|
57
57
|
},
|
|
58
|
+
{to: 'showcase', label: 'Showcase', position: 'left'},
|
|
58
59
|
{to: '/blog', label: 'Blog', position: 'left'},
|
|
59
60
|
{
|
|
60
61
|
href: 'https://github.com/joshdholtz/wassup',
|
|
@@ -80,7 +81,7 @@ const config = {
|
|
|
80
81
|
items: [
|
|
81
82
|
{
|
|
82
83
|
label: 'Twitter',
|
|
83
|
-
href: 'https://twitter.com/
|
|
84
|
+
href: 'https://twitter.com/WassupDashboard',
|
|
84
85
|
},
|
|
85
86
|
],
|
|
86
87
|
},
|
data/docs/package-lock.json
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
|
+
"name": "docs",
|
|
8
9
|
"version": "0.0.0",
|
|
9
10
|
"dependencies": {
|
|
10
11
|
"@docusaurus/core": "2.0.0-beta.10",
|
|
@@ -11138,7 +11139,6 @@
|
|
|
11138
11139
|
"version": "4.5.3",
|
|
11139
11140
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz",
|
|
11140
11141
|
"integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==",
|
|
11141
|
-
"dev": true,
|
|
11142
11142
|
"bin": {
|
|
11143
11143
|
"tsc": "bin/tsc",
|
|
11144
11144
|
"tsserver": "bin/tsserver"
|
|
@@ -14098,7 +14098,8 @@
|
|
|
14098
14098
|
"@mdx-js/react": {
|
|
14099
14099
|
"version": "1.6.22",
|
|
14100
14100
|
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz",
|
|
14101
|
-
"integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg=="
|
|
14101
|
+
"integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
|
|
14102
|
+
"requires": {}
|
|
14102
14103
|
},
|
|
14103
14104
|
"@mdx-js/runtime": {
|
|
14104
14105
|
"version": "1.6.22",
|
|
@@ -14181,42 +14182,50 @@
|
|
|
14181
14182
|
"@svgr/babel-plugin-add-jsx-attribute": {
|
|
14182
14183
|
"version": "6.0.0",
|
|
14183
14184
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz",
|
|
14184
|
-
"integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA=="
|
|
14185
|
+
"integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==",
|
|
14186
|
+
"requires": {}
|
|
14185
14187
|
},
|
|
14186
14188
|
"@svgr/babel-plugin-remove-jsx-attribute": {
|
|
14187
14189
|
"version": "6.0.0",
|
|
14188
14190
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz",
|
|
14189
|
-
"integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw=="
|
|
14191
|
+
"integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==",
|
|
14192
|
+
"requires": {}
|
|
14190
14193
|
},
|
|
14191
14194
|
"@svgr/babel-plugin-remove-jsx-empty-expression": {
|
|
14192
14195
|
"version": "6.0.0",
|
|
14193
14196
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz",
|
|
14194
|
-
"integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA=="
|
|
14197
|
+
"integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==",
|
|
14198
|
+
"requires": {}
|
|
14195
14199
|
},
|
|
14196
14200
|
"@svgr/babel-plugin-replace-jsx-attribute-value": {
|
|
14197
14201
|
"version": "6.0.0",
|
|
14198
14202
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz",
|
|
14199
|
-
"integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ=="
|
|
14203
|
+
"integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==",
|
|
14204
|
+
"requires": {}
|
|
14200
14205
|
},
|
|
14201
14206
|
"@svgr/babel-plugin-svg-dynamic-title": {
|
|
14202
14207
|
"version": "6.0.0",
|
|
14203
14208
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz",
|
|
14204
|
-
"integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg=="
|
|
14209
|
+
"integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==",
|
|
14210
|
+
"requires": {}
|
|
14205
14211
|
},
|
|
14206
14212
|
"@svgr/babel-plugin-svg-em-dimensions": {
|
|
14207
14213
|
"version": "6.0.0",
|
|
14208
14214
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz",
|
|
14209
|
-
"integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA=="
|
|
14215
|
+
"integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==",
|
|
14216
|
+
"requires": {}
|
|
14210
14217
|
},
|
|
14211
14218
|
"@svgr/babel-plugin-transform-react-native-svg": {
|
|
14212
14219
|
"version": "6.0.0",
|
|
14213
14220
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz",
|
|
14214
|
-
"integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ=="
|
|
14221
|
+
"integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==",
|
|
14222
|
+
"requires": {}
|
|
14215
14223
|
},
|
|
14216
14224
|
"@svgr/babel-plugin-transform-svg-component": {
|
|
14217
14225
|
"version": "6.1.0",
|
|
14218
14226
|
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.1.0.tgz",
|
|
14219
|
-
"integrity": "sha512-1zacrn08K5RyV2NtXahOZ5Im/+aB1Y0LVh6QpzwgQV05sY7H5Npq+OcW/UqXbfB2Ua/WnHsFossFQqigCjarYg=="
|
|
14227
|
+
"integrity": "sha512-1zacrn08K5RyV2NtXahOZ5Im/+aB1Y0LVh6QpzwgQV05sY7H5Npq+OcW/UqXbfB2Ua/WnHsFossFQqigCjarYg==",
|
|
14228
|
+
"requires": {}
|
|
14220
14229
|
},
|
|
14221
14230
|
"@svgr/babel-preset": {
|
|
14222
14231
|
"version": "6.1.0",
|
|
@@ -14666,17 +14675,20 @@
|
|
|
14666
14675
|
"acorn-dynamic-import": {
|
|
14667
14676
|
"version": "4.0.0",
|
|
14668
14677
|
"resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
|
|
14669
|
-
"integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw=="
|
|
14678
|
+
"integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
|
|
14679
|
+
"requires": {}
|
|
14670
14680
|
},
|
|
14671
14681
|
"acorn-import-assertions": {
|
|
14672
14682
|
"version": "1.8.0",
|
|
14673
14683
|
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
|
|
14674
|
-
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw=="
|
|
14684
|
+
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
|
|
14685
|
+
"requires": {}
|
|
14675
14686
|
},
|
|
14676
14687
|
"acorn-jsx": {
|
|
14677
14688
|
"version": "5.3.2",
|
|
14678
14689
|
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
|
14679
|
-
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
|
|
14690
|
+
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
|
14691
|
+
"requires": {}
|
|
14680
14692
|
},
|
|
14681
14693
|
"acorn-walk": {
|
|
14682
14694
|
"version": "8.2.0",
|
|
@@ -14737,7 +14749,8 @@
|
|
|
14737
14749
|
"ajv-keywords": {
|
|
14738
14750
|
"version": "3.5.2",
|
|
14739
14751
|
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
|
14740
|
-
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
|
|
14752
|
+
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
|
14753
|
+
"requires": {}
|
|
14741
14754
|
},
|
|
14742
14755
|
"algoliasearch": {
|
|
14743
14756
|
"version": "4.11.0",
|
|
@@ -15845,7 +15858,8 @@
|
|
|
15845
15858
|
"cssnano-utils": {
|
|
15846
15859
|
"version": "2.0.1",
|
|
15847
15860
|
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz",
|
|
15848
|
-
"integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ=="
|
|
15861
|
+
"integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==",
|
|
15862
|
+
"requires": {}
|
|
15849
15863
|
},
|
|
15850
15864
|
"csso": {
|
|
15851
15865
|
"version": "4.2.0",
|
|
@@ -17171,7 +17185,8 @@
|
|
|
17171
17185
|
"icss-utils": {
|
|
17172
17186
|
"version": "5.1.0",
|
|
17173
17187
|
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
|
|
17174
|
-
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="
|
|
17188
|
+
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
|
|
17189
|
+
"requires": {}
|
|
17175
17190
|
},
|
|
17176
17191
|
"ignore": {
|
|
17177
17192
|
"version": "5.1.9",
|
|
@@ -18427,22 +18442,26 @@
|
|
|
18427
18442
|
"postcss-discard-comments": {
|
|
18428
18443
|
"version": "5.0.1",
|
|
18429
18444
|
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz",
|
|
18430
|
-
"integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg=="
|
|
18445
|
+
"integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==",
|
|
18446
|
+
"requires": {}
|
|
18431
18447
|
},
|
|
18432
18448
|
"postcss-discard-duplicates": {
|
|
18433
18449
|
"version": "5.0.1",
|
|
18434
18450
|
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz",
|
|
18435
|
-
"integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA=="
|
|
18451
|
+
"integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==",
|
|
18452
|
+
"requires": {}
|
|
18436
18453
|
},
|
|
18437
18454
|
"postcss-discard-empty": {
|
|
18438
18455
|
"version": "5.0.1",
|
|
18439
18456
|
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz",
|
|
18440
|
-
"integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw=="
|
|
18457
|
+
"integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==",
|
|
18458
|
+
"requires": {}
|
|
18441
18459
|
},
|
|
18442
18460
|
"postcss-discard-overridden": {
|
|
18443
18461
|
"version": "5.0.1",
|
|
18444
18462
|
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz",
|
|
18445
|
-
"integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q=="
|
|
18463
|
+
"integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==",
|
|
18464
|
+
"requires": {}
|
|
18446
18465
|
},
|
|
18447
18466
|
"postcss-discard-unused": {
|
|
18448
18467
|
"version": "5.0.1",
|
|
@@ -18532,7 +18551,8 @@
|
|
|
18532
18551
|
"postcss-modules-extract-imports": {
|
|
18533
18552
|
"version": "3.0.0",
|
|
18534
18553
|
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
|
|
18535
|
-
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw=="
|
|
18554
|
+
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
|
|
18555
|
+
"requires": {}
|
|
18536
18556
|
},
|
|
18537
18557
|
"postcss-modules-local-by-default": {
|
|
18538
18558
|
"version": "4.0.0",
|
|
@@ -18563,7 +18583,8 @@
|
|
|
18563
18583
|
"postcss-normalize-charset": {
|
|
18564
18584
|
"version": "5.0.1",
|
|
18565
18585
|
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz",
|
|
18566
|
-
"integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg=="
|
|
18586
|
+
"integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==",
|
|
18587
|
+
"requires": {}
|
|
18567
18588
|
},
|
|
18568
18589
|
"postcss-normalize-display-values": {
|
|
18569
18590
|
"version": "5.0.1",
|
|
@@ -18713,7 +18734,8 @@
|
|
|
18713
18734
|
"postcss-zindex": {
|
|
18714
18735
|
"version": "5.0.1",
|
|
18715
18736
|
"resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.0.1.tgz",
|
|
18716
|
-
"integrity": "sha512-nwgtJJys+XmmSGoYCcgkf/VczP8Mp/0OfSv3v0+fw0uABY4yxw+eFs0Xp9nAZHIKnS5j+e9ywQ+RD+ONyvl5pA=="
|
|
18737
|
+
"integrity": "sha512-nwgtJJys+XmmSGoYCcgkf/VczP8Mp/0OfSv3v0+fw0uABY4yxw+eFs0Xp9nAZHIKnS5j+e9ywQ+RD+ONyvl5pA==",
|
|
18738
|
+
"requires": {}
|
|
18717
18739
|
},
|
|
18718
18740
|
"prepend-http": {
|
|
18719
18741
|
"version": "2.0.0",
|
|
@@ -18737,7 +18759,8 @@
|
|
|
18737
18759
|
"prism-react-renderer": {
|
|
18738
18760
|
"version": "1.2.1",
|
|
18739
18761
|
"resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz",
|
|
18740
|
-
"integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg=="
|
|
18762
|
+
"integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==",
|
|
18763
|
+
"requires": {}
|
|
18741
18764
|
},
|
|
18742
18765
|
"prismjs": {
|
|
18743
18766
|
"version": "1.25.0",
|
|
@@ -19116,7 +19139,8 @@
|
|
|
19116
19139
|
"react-side-effect": {
|
|
19117
19140
|
"version": "2.1.1",
|
|
19118
19141
|
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz",
|
|
19119
|
-
"integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ=="
|
|
19142
|
+
"integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==",
|
|
19143
|
+
"requires": {}
|
|
19120
19144
|
},
|
|
19121
19145
|
"react-textarea-autosize": {
|
|
19122
19146
|
"version": "8.3.3",
|
|
@@ -20435,8 +20459,7 @@
|
|
|
20435
20459
|
"typescript": {
|
|
20436
20460
|
"version": "4.5.3",
|
|
20437
20461
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz",
|
|
20438
|
-
"integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ=="
|
|
20439
|
-
"dev": true
|
|
20462
|
+
"integrity": "sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ=="
|
|
20440
20463
|
},
|
|
20441
20464
|
"ua-parser-js": {
|
|
20442
20465
|
"version": "0.7.31",
|
|
@@ -20676,7 +20699,8 @@
|
|
|
20676
20699
|
"use-isomorphic-layout-effect": {
|
|
20677
20700
|
"version": "1.1.1",
|
|
20678
20701
|
"resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz",
|
|
20679
|
-
"integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ=="
|
|
20702
|
+
"integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==",
|
|
20703
|
+
"requires": {}
|
|
20680
20704
|
},
|
|
20681
20705
|
"use-latest": {
|
|
20682
20706
|
"version": "1.2.0",
|
|
@@ -21047,7 +21071,8 @@
|
|
|
21047
21071
|
"ws": {
|
|
21048
21072
|
"version": "8.3.0",
|
|
21049
21073
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz",
|
|
21050
|
-
"integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw=="
|
|
21074
|
+
"integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==",
|
|
21075
|
+
"requires": {}
|
|
21051
21076
|
}
|
|
21052
21077
|
}
|
|
21053
21078
|
},
|
|
@@ -21152,7 +21177,8 @@
|
|
|
21152
21177
|
"ws": {
|
|
21153
21178
|
"version": "7.5.6",
|
|
21154
21179
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
|
|
21155
|
-
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA=="
|
|
21180
|
+
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
|
|
21181
|
+
"requires": {}
|
|
21156
21182
|
},
|
|
21157
21183
|
"xdg-basedir": {
|
|
21158
21184
|
"version": "4.0.0",
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
align-items: center;
|
|
4
4
|
padding: 2rem 0;
|
|
5
5
|
width: 100%;
|
|
6
|
+
|
|
7
|
+
background-color: #17191a;
|
|
8
|
+
color: #F6F6F7;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.features code {
|
|
12
|
+
background-color: #424447;
|
|
13
|
+
border: 0.1rem solid rgba(0, 0, 0, 0.1);
|
|
14
|
+
border-radius: var(--ifm-code-border-radius);
|
|
15
|
+
font-family: var(--ifm-font-family-monospace);
|
|
16
|
+
font-size: var(--ifm-code-font-size);
|
|
17
|
+
padding: var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal);
|
|
18
|
+
vertical-align: middle;
|
|
6
19
|
}
|
|
7
20
|
|
|
8
21
|
.featureSvg {
|
|
@@ -14,8 +14,8 @@ const FeatureList: FeatureItem[] = [
|
|
|
14
14
|
image: '/img/demo-supfile.png',
|
|
15
15
|
description: (
|
|
16
16
|
<>
|
|
17
|
-
Wassup was designed to be easy to
|
|
18
|
-
size, position, content, and selection of the panes in the <code>Supfile</code>.
|
|
17
|
+
Wassup was designed to be easy to setup but give maximum flexibilty. Configure
|
|
18
|
+
size, position, content, and item selection of the panes in the <code>Supfile</code>.
|
|
19
19
|
</>
|
|
20
20
|
),
|
|
21
21
|
},
|
|
@@ -24,7 +24,7 @@ const FeatureList: FeatureItem[] = [
|
|
|
24
24
|
image: '/img/wassup-screenshot.png',
|
|
25
25
|
description: (
|
|
26
26
|
<>
|
|
27
|
-
Run
|
|
27
|
+
Run <code>wassup</code> in the same directory as your <code>Supfile</code> to show the dashboard. Press the number
|
|
28
28
|
keys to interact with a specific pane. Highlight rows with <code>j</code> and <code>k</code> and press <code>Enter</code> to select.
|
|
29
29
|
</>
|
|
30
30
|
),
|
data/docs/src/css/custom.css
CHANGED
|
@@ -5,15 +5,32 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* You can override the default Infima variables here. */
|
|
8
|
+
/* #2b3137 */
|
|
8
9
|
:root {
|
|
9
|
-
--ifm-color-primary: #
|
|
10
|
-
--ifm-color-primary-dark:
|
|
11
|
-
--ifm-color-primary-darker:
|
|
12
|
-
--ifm-color-primary-darkest:
|
|
13
|
-
--ifm-color-primary-light:
|
|
14
|
-
--ifm-color-primary-lighter:
|
|
15
|
-
--ifm-color-primary-lightest:
|
|
10
|
+
--ifm-color-primary: #1C1E21;
|
|
11
|
+
--ifm-color-primary-dark: #0F1114;
|
|
12
|
+
--ifm-color-primary-darker: #030508;
|
|
13
|
+
--ifm-color-primary-darkest: #030508;
|
|
14
|
+
--ifm-color-primary-light: #292B2E;
|
|
15
|
+
--ifm-color-primary-lighter: #36383B;
|
|
16
|
+
--ifm-color-primary-lightest: #424447;
|
|
16
17
|
--ifm-code-font-size: 95%;
|
|
18
|
+
|
|
19
|
+
/* --ifm-menu-color-active: #458588;
|
|
20
|
+
--ifm-navbar-link-hover-color: #458588; */
|
|
21
|
+
/* --ifm-navbar-link-color: #458588; */
|
|
22
|
+
/* --ifm-link-color: #458588; */
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
html[data-theme='dark'] {
|
|
26
|
+
--ifm-color-primary: #F6F6F7;
|
|
27
|
+
--ifm-color-primary-dark: #E9E9EA;
|
|
28
|
+
--ifm-color-primary-darker: #DDDDDE;
|
|
29
|
+
--ifm-color-primary-darkest: #D0D0D1;
|
|
30
|
+
--ifm-color-primary-light: #F6F6F7;
|
|
31
|
+
--ifm-color-primary-lighter: #F6F6F7;
|
|
32
|
+
--ifm-color-primary-lightest: #F6F6F7;
|
|
33
|
+
/* any other colors you wish to overwrite */
|
|
17
34
|
}
|
|
18
35
|
|
|
19
36
|
.docusaurus-highlight-code-line {
|
|
@@ -24,5 +41,5 @@
|
|
|
24
41
|
}
|
|
25
42
|
|
|
26
43
|
html[data-theme='dark'] .docusaurus-highlight-code-line {
|
|
27
|
-
background-color: rgba(
|
|
44
|
+
background-color: rgba(109, 102, 102, 0.3);
|
|
28
45
|
}
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
text-align: center;
|
|
9
9
|
position: relative;
|
|
10
10
|
overflow: hidden;
|
|
11
|
+
|
|
12
|
+
background-color: #2b3137;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
.heroTitle {
|
|
@@ -18,8 +20,33 @@
|
|
|
18
20
|
|
|
19
21
|
}
|
|
20
22
|
|
|
23
|
+
.calloutAndLogo {
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
align-items: center;
|
|
27
|
+
margin-bottom: 20px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.callout {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.title {
|
|
36
|
+
font-size: 50px;
|
|
37
|
+
color: #FFFFFF;
|
|
38
|
+
padding-right: 20px;
|
|
39
|
+
text-align: left;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.callout {
|
|
43
|
+
color: #FFFFFF;
|
|
44
|
+
padding-right: 20px;
|
|
45
|
+
text-align: left;
|
|
46
|
+
}
|
|
47
|
+
|
|
21
48
|
.heroLogo {
|
|
22
|
-
max-
|
|
49
|
+
max-height: 200px;
|
|
23
50
|
border-radius: 20px;
|
|
24
51
|
}
|
|
25
52
|
|
|
@@ -29,6 +56,18 @@
|
|
|
29
56
|
}
|
|
30
57
|
}
|
|
31
58
|
|
|
59
|
+
.moreInfo {
|
|
60
|
+
background-color: rgb(32, 35, 42);
|
|
61
|
+
color: #F6F6F7;
|
|
62
|
+
text-align: center;
|
|
63
|
+
padding: 20px 0px;
|
|
64
|
+
font-size: 30px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.moreInfo strong {
|
|
68
|
+
color: #458588;
|
|
69
|
+
}
|
|
70
|
+
|
|
32
71
|
.buttons {
|
|
33
72
|
display: flex;
|
|
34
73
|
align-items: center;
|
data/docs/src/pages/index.tsx
CHANGED
|
@@ -11,12 +11,20 @@ function HomepageHeader() {
|
|
|
11
11
|
return (
|
|
12
12
|
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
|
13
13
|
<div className="container">
|
|
14
|
-
<
|
|
14
|
+
<div className={styles.calloutAndLogo}>
|
|
15
|
+
<div className={styles.callout}>
|
|
16
|
+
<h1 className={styles.title}>Wassup</h1>
|
|
17
|
+
<h2 className={styles.callout}>
|
|
18
|
+
Easily configure and script <br/> a personal terminal dashboard
|
|
19
|
+
</h2>
|
|
20
|
+
</div>
|
|
21
|
+
<img className={styles.heroLogo} src="/img/wassup.png" alt="Wassup logo"/>
|
|
22
|
+
</div>
|
|
15
23
|
<div className={styles.buttons}>
|
|
16
24
|
<Link
|
|
17
25
|
className="button button--secondary button--lg"
|
|
18
26
|
to="/docs/intro">
|
|
19
|
-
|
|
27
|
+
Getting Started - 5min ⏱️
|
|
20
28
|
</Link>
|
|
21
29
|
</div>
|
|
22
30
|
</div>
|
|
@@ -24,6 +32,15 @@ function HomepageHeader() {
|
|
|
24
32
|
);
|
|
25
33
|
}
|
|
26
34
|
|
|
35
|
+
function HomepageMoreInfo() {
|
|
36
|
+
const {siteConfig} = useDocusaurusContext();
|
|
37
|
+
return (
|
|
38
|
+
<div className={styles.moreInfo}>
|
|
39
|
+
Script <strong>your own panes</strong> or use Wassup's <strong>built-in panes</strong>!
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
27
44
|
export default function Home(): JSX.Element {
|
|
28
45
|
const {siteConfig} = useDocusaurusContext();
|
|
29
46
|
return (
|
|
@@ -31,6 +48,7 @@ export default function Home(): JSX.Element {
|
|
|
31
48
|
title={`Hello from ${siteConfig.title}`}
|
|
32
49
|
description="Description will go into a meta tag in <head />">
|
|
33
50
|
<HomepageHeader />
|
|
51
|
+
<HomepageMoreInfo />
|
|
34
52
|
<main>
|
|
35
53
|
<HomepageFeatures />
|
|
36
54
|
</main>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Stuff here eventually
|
data/examples/basic/Supfile
CHANGED
|
@@ -10,16 +10,7 @@ add_pane do |pane|
|
|
|
10
10
|
pane.interval = 60 * 5
|
|
11
11
|
pane.show_refresh = true
|
|
12
12
|
|
|
13
|
-
pane.
|
|
14
|
-
prs = Helpers::GitHub.pull_requests(org: 'fastlane', repo: 'fastlane')
|
|
15
|
-
prs.each do |pr|
|
|
16
|
-
display = Helpers::GitHub::Formatter.pr(pr)
|
|
17
|
-
content.add_row(display, pr)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
pane.selection('enter', 'Open PR in browser') do |pr|
|
|
21
|
-
`open #{pr['html_url']}`
|
|
22
|
-
end
|
|
13
|
+
pane.type = Panes::GitHub::PullRequests.new(org: 'fastlane', repo: 'fastlane', show_username: true)
|
|
23
14
|
end
|
|
24
15
|
|
|
25
16
|
add_pane do |pane|
|
|
@@ -34,18 +25,7 @@ add_pane do |pane|
|
|
|
34
25
|
pane.interval = 60 * 5
|
|
35
26
|
pane.show_refresh = true
|
|
36
27
|
|
|
37
|
-
pane.
|
|
38
|
-
# Uses GitHub's /search/issues API
|
|
39
|
-
# Docs - https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests
|
|
40
|
-
issues = Helpers::GitHub.issues(org: 'fastlane-community', q: 'is:pr is:open')
|
|
41
|
-
issues.each do |issue|
|
|
42
|
-
display = Helpers::GitHub::Formatter.pr(issue, show_repo: true)
|
|
43
|
-
content.add_row(display, issue)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
pane.selection('enter', 'Open PR in browser') do |pr|
|
|
47
|
-
`open #{pr['html_url']}`
|
|
48
|
-
end
|
|
28
|
+
pane.type = Panes::GitHub::Search.new(org: 'fastlane-community', query: 'is:pr is:open', show_username: true)
|
|
49
29
|
end
|
|
50
30
|
|
|
51
31
|
add_pane do |pane|
|
|
@@ -57,21 +37,17 @@ add_pane do |pane|
|
|
|
57
37
|
pane.highlight = true
|
|
58
38
|
pane.title = "High Interaction Issues - fastlane/fastlane"
|
|
59
39
|
|
|
40
|
+
pane.alert_level = AlertLevel::HIGH
|
|
41
|
+
|
|
60
42
|
pane.interval = 60 * 5
|
|
61
43
|
pane.show_refresh = true
|
|
62
44
|
|
|
63
|
-
pane.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
content.add_row(display, issue)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
pane.selection('enter', 'Open issue in browser') do |pr|
|
|
73
|
-
`open #{pr['html_url']}`
|
|
74
|
-
end
|
|
45
|
+
pane.type = Panes::GitHub::Search.new(
|
|
46
|
+
org: 'fastlane',
|
|
47
|
+
repo: 'fastlane',
|
|
48
|
+
query: 'is:issue is:open interactions:>10',
|
|
49
|
+
show_interactions: true
|
|
50
|
+
)
|
|
75
51
|
end
|
|
76
52
|
|
|
77
53
|
add_pane do |pane|
|
|
@@ -86,16 +62,7 @@ add_pane do |pane|
|
|
|
86
62
|
pane.interval = 60 * 5
|
|
87
63
|
pane.show_refresh = true
|
|
88
64
|
|
|
89
|
-
pane.
|
|
90
|
-
releases = Helpers::GitHub.releases(org: 'fastlane', repo: 'fastlane')
|
|
91
|
-
releases.each do |release|
|
|
92
|
-
display = Helpers::GitHub::Formatter.release(release)
|
|
93
|
-
content.add_row(display, release)
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
pane.selection('enter', 'Open release in browser') do |pr|
|
|
97
|
-
`open #{pr['html_url']}`
|
|
98
|
-
end
|
|
65
|
+
pane.type = Panes::GitHub::Releases.new(org: 'fastlane', repo: 'fastlane')
|
|
99
66
|
end
|
|
100
67
|
|
|
101
68
|
add_pane do |pane|
|
|
@@ -110,21 +77,7 @@ add_pane do |pane|
|
|
|
110
77
|
pane.interval = 60 * 5
|
|
111
78
|
pane.show_refresh = true
|
|
112
79
|
|
|
113
|
-
pane.
|
|
114
|
-
workflows = Helpers::CircleCI.workflows(vcs: 'github', org: 'fastlane', repo: 'fastlane', limit_days: 14)
|
|
115
|
-
workflows.each do |workflow|
|
|
116
|
-
display = Helpers::CircleCI::Formatter.workflow(workflow)
|
|
117
|
-
content.add_row(display, workflow)
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
pane.selection('enter', 'Open workflow in browser') do |workflow|
|
|
121
|
-
slug = workflow["project_slug"]
|
|
122
|
-
pipeline_number = workflow["pipeline_number"]
|
|
123
|
-
workflow_id = workflow["id"]
|
|
124
|
-
|
|
125
|
-
url = "https://app.circleci.com/pipelines/#{slug}/#{pipeline_number}/workflows/#{workflow_id}"
|
|
126
|
-
`open #{url}`
|
|
127
|
-
end
|
|
80
|
+
pane.type = Panes::CircleCI::Workflows.new(vcs: 'github', org: 'fastlane', repo: 'fastlane')
|
|
128
81
|
end
|
|
129
82
|
|
|
130
83
|
add_pane do |pane|
|
|
@@ -139,26 +92,7 @@ add_pane do |pane|
|
|
|
139
92
|
pane.interval = 60 * 5
|
|
140
93
|
pane.show_refresh = true
|
|
141
94
|
|
|
142
|
-
pane.
|
|
143
|
-
deploys = Helpers::Netlify.deploys(site_id: '91e8af7d-ea1c-4553-afb0-af7539bed063')
|
|
144
|
-
deploys.each do |deploy|
|
|
145
|
-
display = Helpers::Netlify::Formatter.deploy(deploy)
|
|
146
|
-
content.add_row(display, deploy)
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
pane.selection('enter', 'Open in Netlify') do |deploy|
|
|
150
|
-
url = "#{deploy['admin_url']}/deploys/#{deploy['id']}"
|
|
151
|
-
`open #{url}`
|
|
152
|
-
end
|
|
153
|
-
pane.selection('o', 'Open preview') do |deploy|
|
|
154
|
-
if deploy['state'] == 'error'
|
|
155
|
-
# show alert that isn't here yet
|
|
156
|
-
elsif deploy['review_id'].nil?
|
|
157
|
-
`open #{deploy['url']}`
|
|
158
|
-
else
|
|
159
|
-
`open #{deploy['deploy_ssl_url']}`
|
|
160
|
-
end
|
|
161
|
-
end
|
|
95
|
+
pane.type = Panes::Netlify::Deploys.new(site_id: '91e8af7d-ea1c-4553-afb0-af7539bed063')
|
|
162
96
|
end
|
|
163
97
|
|
|
164
98
|
add_pane do |pane|
|
|
@@ -173,23 +107,8 @@ add_pane do |pane|
|
|
|
173
107
|
pane.interval = 60 * 5
|
|
174
108
|
pane.show_refresh = true
|
|
175
109
|
|
|
176
|
-
pane.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
display = Helpers::Shortcut::Formatter.story(story)
|
|
181
|
-
content.add_row(display, story, page: "Owned Stories")
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
# Ready for review stories
|
|
185
|
-
stories = Helpers::Shortcut.search_stories(query: "state:\"Ready For Review\" team:\"The\"")
|
|
186
|
-
stories.each do |story|
|
|
187
|
-
display = Helpers::Shortcut::Formatter.story(story)
|
|
188
|
-
content.add_row(display, story, page: "Ready For Review")
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
|
-
pane.selection('enter', 'Open in Shortcut') do |story|
|
|
192
|
-
url = story['app_url']
|
|
193
|
-
`open #{url}`
|
|
194
|
-
end
|
|
110
|
+
pane.type = Panes::Shortcut::Stories.new(query_pages: {
|
|
111
|
+
"Owned Stories": "owner:joshholtz",
|
|
112
|
+
"Ready For Review": "state:\"Ready For Review\" team:\"The\""
|
|
113
|
+
})
|
|
195
114
|
end
|
data/examples/debug/Supfile
CHANGED
data/lib/wassup/app.rb
CHANGED
|
@@ -86,11 +86,11 @@ module Wassup
|
|
|
86
86
|
module Helpers
|
|
87
87
|
module GitHub
|
|
88
88
|
module Formatter
|
|
89
|
-
def self.issue(issue, show_repo: false, show_interactions: false)
|
|
90
|
-
self.pr(issue, show_repo: show_repo, show_interactions: show_interactions)
|
|
89
|
+
def self.issue(issue, show_repo: false, show_username: false, show_interactions: false)
|
|
90
|
+
self.pr(issue, show_repo: show_repo, show_username: show_username, show_interactions: show_interactions)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
def self.pr(pr, show_repo: false, show_interactions: false)
|
|
93
|
+
def self.pr(pr, show_repo: false, show_username: false, show_interactions: false)
|
|
94
94
|
number = pr["number"]
|
|
95
95
|
title = pr["title"]
|
|
96
96
|
created_at = pr["created_at"]
|
|
@@ -101,6 +101,11 @@ module Wassup
|
|
|
101
101
|
repo_name = "[fg=gray]#{repo_url_parts.last} "
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
+
username = ""
|
|
105
|
+
if show_username
|
|
106
|
+
username = "[fg=magenta]#{pr["user"]["login"]} "
|
|
107
|
+
end
|
|
108
|
+
|
|
104
109
|
interactions = ""
|
|
105
110
|
if show_interactions
|
|
106
111
|
interaction_count = pr["comments"] + pr["reactions"]["total_count"]
|
|
@@ -113,7 +118,7 @@ module Wassup
|
|
|
113
118
|
days = (Time.now - date).to_i / (24 * 60 * 60)
|
|
114
119
|
days_formatted = '%3.3s' % days.to_s
|
|
115
120
|
|
|
116
|
-
display = "[fg=yellow]#{number_formatted}[fg=cyan] #{days_formatted}d ago #{interactions}#{repo_name}[fg=white]#{title}"
|
|
121
|
+
display = "[fg=yellow]#{number_formatted}[fg=cyan] #{days_formatted}d ago #{interactions}#{repo_name}#{username}[fg=white]#{title}"
|
|
117
122
|
|
|
118
123
|
return display
|
|
119
124
|
end
|
data/lib/wassup/pane.rb
CHANGED
|
@@ -13,6 +13,8 @@ module Wassup
|
|
|
13
13
|
attr_accessor :title
|
|
14
14
|
attr_accessor :description
|
|
15
15
|
|
|
16
|
+
attr_accessor :alert_level
|
|
17
|
+
|
|
16
18
|
attr_accessor :focused
|
|
17
19
|
attr_accessor :focus_number
|
|
18
20
|
|
|
@@ -53,9 +55,11 @@ module Wassup
|
|
|
53
55
|
|
|
54
56
|
attr_accessor :title
|
|
55
57
|
attr_accessor :data
|
|
58
|
+
attr_accessor :alert_level
|
|
56
59
|
|
|
57
60
|
def initialize(title = nil)
|
|
58
61
|
@title = title
|
|
62
|
+
@alert_level = nil
|
|
59
63
|
@data = []
|
|
60
64
|
end
|
|
61
65
|
|
|
@@ -64,7 +68,7 @@ module Wassup
|
|
|
64
68
|
end
|
|
65
69
|
end
|
|
66
70
|
|
|
67
|
-
def initialize(height, width, top, left, title: nil, description: nil, highlight: true, focus_number: nil, interval:, show_refresh:, content_block:, selection_blocks:, selection_blocks_description:, debug: false)
|
|
71
|
+
def initialize(height, width, top, left, title: nil, description: nil, alert_level: nil, highlight: true, focus_number: nil, interval:, show_refresh:, content_block:, selection_blocks:, selection_blocks_description:, debug: false)
|
|
68
72
|
|
|
69
73
|
if !debug
|
|
70
74
|
self.win_height = Curses.lines * height
|
|
@@ -97,6 +101,8 @@ module Wassup
|
|
|
97
101
|
self.title = title
|
|
98
102
|
self.description = description
|
|
99
103
|
|
|
104
|
+
self.alert_level = alert_level
|
|
105
|
+
|
|
100
106
|
self.interval = interval
|
|
101
107
|
self.content_block = content_block
|
|
102
108
|
self.selection_blocks = selection_blocks || {}
|
|
@@ -207,10 +213,9 @@ module Wassup
|
|
|
207
213
|
if rtn.is_a?(Ope)
|
|
208
214
|
self.caught_error = rtn.error
|
|
209
215
|
content = Wassup::Pane::Content.new("Overview")
|
|
210
|
-
|
|
211
|
-
content.add_row("[fg=red]at #{Time.now}[fg=while]")
|
|
216
|
+
content.add_row("[fg=red]#{rtn.error.message}[fg=while]")
|
|
212
217
|
content.add_row("")
|
|
213
|
-
content.add_row("[fg=
|
|
218
|
+
content.add_row("[fg=gray]Error at #{Time.now}[fg=while]")
|
|
214
219
|
|
|
215
220
|
content_directions = Wassup::Pane::Content.new("Directions")
|
|
216
221
|
content_directions.add_row("1. Press 'c' to copy the stacktrace")
|
|
@@ -331,9 +336,43 @@ module Wassup
|
|
|
331
336
|
else
|
|
332
337
|
full_title = "#{self.focus_number} - #{title}"
|
|
333
338
|
end
|
|
339
|
+
full_title += " "
|
|
334
340
|
|
|
335
341
|
self.win.setpos(0, 3)
|
|
336
342
|
self.win.addstr(full_title)
|
|
343
|
+
|
|
344
|
+
self.win.setpos(0, 3 + full_title.size)
|
|
345
|
+
alert = ""
|
|
346
|
+
alert_count = 0
|
|
347
|
+
if self.contents
|
|
348
|
+
alert_count = self.contents.map { |c| c.data.size }.inject(0, :+)
|
|
349
|
+
end
|
|
350
|
+
case self.alert_level
|
|
351
|
+
when AlertLevel::HIGH
|
|
352
|
+
self.win.attrset(Curses.color_pair(Wassup::Color::Pair::RED))
|
|
353
|
+
if alert_count == 1
|
|
354
|
+
alert += "(#{alert_count} HIGH ALERT)"
|
|
355
|
+
elsif alert_count > 0
|
|
356
|
+
alert += "(#{alert_count} HIGH ALERTS)"
|
|
357
|
+
end
|
|
358
|
+
when AlertLevel::MEDIUM
|
|
359
|
+
self.win.attrset(Curses.color_pair(Wassup::Color::Pair::YELLOW))
|
|
360
|
+
if alert_count == 1
|
|
361
|
+
alert += "(#{alert_count} MEDIUM ALERT)"
|
|
362
|
+
elsif alert_count > 0
|
|
363
|
+
alert += "(#{alert_count} MEDIUM ALERTS)"
|
|
364
|
+
end
|
|
365
|
+
when AlertLevel::LOW
|
|
366
|
+
self.win.attrset(Curses.color_pair(Wassup::Color::Pair::CYAN))
|
|
367
|
+
if alert_count == 1
|
|
368
|
+
alert += "(#{alert_count} LOW ALERT)"
|
|
369
|
+
elsif alert_count > 0
|
|
370
|
+
alert += "(#{alert_count} LOW ALERTS)"
|
|
371
|
+
end
|
|
372
|
+
end
|
|
373
|
+
self.win.addstr(alert)
|
|
374
|
+
self.subwin.attrset(Curses.color_pair(Wassup::Color::Pair::NORMAL))
|
|
375
|
+
|
|
337
376
|
self.win.refresh
|
|
338
377
|
end
|
|
339
378
|
|
data/lib/wassup/pane_builder.rb
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
module Wassup
|
|
3
|
+
module AlertLevel
|
|
4
|
+
HIGH = "high"
|
|
5
|
+
MEDIUM = "medium"
|
|
6
|
+
LOW = "low"
|
|
7
|
+
end
|
|
8
|
+
|
|
3
9
|
class PaneBuilder
|
|
4
10
|
attr_accessor :height
|
|
5
11
|
attr_accessor :width
|
|
@@ -11,6 +17,8 @@ module Wassup
|
|
|
11
17
|
attr_accessor :title
|
|
12
18
|
attr_accessor :description
|
|
13
19
|
|
|
20
|
+
attr_accessor :alert_level
|
|
21
|
+
|
|
14
22
|
attr_accessor :show_refresh
|
|
15
23
|
|
|
16
24
|
attr_accessor :interval
|
|
@@ -18,6 +26,8 @@ module Wassup
|
|
|
18
26
|
attr_accessor :selection_blocks
|
|
19
27
|
attr_accessor :selection_blocks_description
|
|
20
28
|
|
|
29
|
+
attr_accessor :type
|
|
30
|
+
|
|
21
31
|
class ContentBuilder
|
|
22
32
|
attr_accessor :contents
|
|
23
33
|
|
|
@@ -62,7 +72,7 @@ module Wassup
|
|
|
62
72
|
end
|
|
63
73
|
end
|
|
64
74
|
|
|
65
|
-
def initialize
|
|
75
|
+
def initialize
|
|
66
76
|
@height = 1
|
|
67
77
|
@weight = 1
|
|
68
78
|
@top = 0
|
|
@@ -75,6 +85,10 @@ module Wassup
|
|
|
75
85
|
@selection_blocks_description = {}
|
|
76
86
|
end
|
|
77
87
|
|
|
88
|
+
def type=(type)
|
|
89
|
+
type.configure(self)
|
|
90
|
+
end
|
|
91
|
+
|
|
78
92
|
def content(&block)
|
|
79
93
|
self.content_block = block
|
|
80
94
|
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Wassup
|
|
2
|
+
module Panes
|
|
3
|
+
module CircleCI
|
|
4
|
+
class Workflows
|
|
5
|
+
attr_accessor :vcs
|
|
6
|
+
attr_accessor :org
|
|
7
|
+
attr_accessor :repo
|
|
8
|
+
|
|
9
|
+
def initialize(vcs:, org:, repo:)
|
|
10
|
+
@vcs = vcs
|
|
11
|
+
@org = org
|
|
12
|
+
@repo = repo
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def configure(pane)
|
|
16
|
+
pane.content do |content|
|
|
17
|
+
workflows = Helpers::CircleCI.workflows(vcs: vcs, org: org, repo: repo, limit_days: 14)
|
|
18
|
+
workflows.each do |workflow|
|
|
19
|
+
display = Helpers::CircleCI::Formatter.workflow(workflow)
|
|
20
|
+
content.add_row(display, workflow)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
pane.selection('enter', 'Open workflow in browser') do |workflow|
|
|
24
|
+
slug = workflow["project_slug"]
|
|
25
|
+
pipeline_number = workflow["pipeline_number"]
|
|
26
|
+
workflow_id = workflow["id"]
|
|
27
|
+
|
|
28
|
+
url = "https://app.circleci.com/pipelines/#{slug}/#{pipeline_number}/workflows/#{workflow_id}"
|
|
29
|
+
`open #{url}`
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
module Wassup
|
|
2
|
+
module Panes
|
|
3
|
+
module GitHub
|
|
4
|
+
class PullRequests
|
|
5
|
+
attr_accessor :org
|
|
6
|
+
attr_accessor :repo
|
|
7
|
+
attr_accessor :show_username
|
|
8
|
+
attr_accessor :show_interactions
|
|
9
|
+
|
|
10
|
+
def initialize(org:, repo:, show_username: false, show_interactions: false)
|
|
11
|
+
@org = org
|
|
12
|
+
@repo = repo
|
|
13
|
+
@show_username = show_username
|
|
14
|
+
@show_interactions = show_interactions
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def configure(pane)
|
|
18
|
+
pane.content do |content|
|
|
19
|
+
prs = Helpers::GitHub.pull_requests(org: org, repo: repo)
|
|
20
|
+
prs.each do |pr|
|
|
21
|
+
display = Helpers::GitHub::Formatter.pr(pr, show_username: show_username, show_interactions: show_interactions)
|
|
22
|
+
content.add_row(display, pr)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
pane.selection('enter', 'Open PR in browser') do |pr|
|
|
26
|
+
`open #{pr['html_url']}`
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class Releases
|
|
32
|
+
attr_accessor :org
|
|
33
|
+
attr_accessor :repo
|
|
34
|
+
|
|
35
|
+
def initialize(org:, repo:)
|
|
36
|
+
@org = org
|
|
37
|
+
@repo = repo
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def configure(pane)
|
|
41
|
+
pane.content do |content|
|
|
42
|
+
releases = Helpers::GitHub.releases(org: org, repo: repo)
|
|
43
|
+
releases.each do |release|
|
|
44
|
+
display = Helpers::GitHub::Formatter.release(release)
|
|
45
|
+
content.add_row(display, release)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
pane.selection('enter', 'Open release in browser') do |pr|
|
|
49
|
+
`open #{pr['html_url']}`
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class Search
|
|
55
|
+
attr_accessor :org
|
|
56
|
+
attr_accessor :repo
|
|
57
|
+
attr_accessor :query
|
|
58
|
+
attr_accessor :show_repo
|
|
59
|
+
attr_accessor :show_username
|
|
60
|
+
attr_accessor :show_interactions
|
|
61
|
+
|
|
62
|
+
def initialize(org:, repo: nil, query:, show_repo: true, show_username: false, show_interactions: false)
|
|
63
|
+
@org = org
|
|
64
|
+
@repo = repo
|
|
65
|
+
@query = query
|
|
66
|
+
@show_repo = show_repo
|
|
67
|
+
@show_username = show_username
|
|
68
|
+
@show_interactions = show_interactions
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def configure(pane)
|
|
72
|
+
pane.content do |content|
|
|
73
|
+
# Uses GitHub's /search/issues API
|
|
74
|
+
# Docs - https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests
|
|
75
|
+
issues_or_prs = Helpers::GitHub.issues(org: org, repo: repo, q: query)
|
|
76
|
+
issues_or_prs.each do |issue_or_pr|
|
|
77
|
+
display = if issue_or_pr.has_key?('pull_request')
|
|
78
|
+
Helpers::GitHub::Formatter.pr(issue_or_pr, show_repo: show_repo, show_username: show_username, show_interactions: show_interactions)
|
|
79
|
+
else
|
|
80
|
+
Helpers::GitHub::Formatter.issue(issue_or_pr, show_repo: show_repo, show_username: show_username, show_interactions: show_interactions)
|
|
81
|
+
end
|
|
82
|
+
content.add_row(display, issue_or_pr)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
pane.selection('enter', 'Open in browser') do |pr|
|
|
86
|
+
`open #{pr['html_url']}`
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Wassup
|
|
2
|
+
module Panes
|
|
3
|
+
module Netlify
|
|
4
|
+
class Deploys
|
|
5
|
+
attr_accessor :site_id
|
|
6
|
+
|
|
7
|
+
def initialize(site_id:)
|
|
8
|
+
@site_id = site_id
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def configure(pane)
|
|
12
|
+
pane.content do |content|
|
|
13
|
+
deploys = Helpers::Netlify.deploys(site_id: site_id)
|
|
14
|
+
deploys.each do |deploy|
|
|
15
|
+
display = Helpers::Netlify::Formatter.deploy(deploy)
|
|
16
|
+
content.add_row(display, deploy)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
pane.selection('enter', 'Open in Netlify') do |deploy|
|
|
20
|
+
url = "#{deploy['admin_url']}/deploys/#{deploy['id']}"
|
|
21
|
+
`open #{url}`
|
|
22
|
+
end
|
|
23
|
+
pane.selection('o', 'Open preview') do |deploy|
|
|
24
|
+
if deploy['state'] == 'error'
|
|
25
|
+
# show alert that isn't here yet
|
|
26
|
+
elsif deploy['review_id'].nil?
|
|
27
|
+
`open #{deploy['url']}`
|
|
28
|
+
else
|
|
29
|
+
`open #{deploy['deploy_ssl_url']}`
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Wassup
|
|
2
|
+
module Panes
|
|
3
|
+
module Shortcut
|
|
4
|
+
class Stories
|
|
5
|
+
attr_accessor :query_pages
|
|
6
|
+
|
|
7
|
+
def initialize(query: nil, query_pages: nil)
|
|
8
|
+
@query_pages = query_pages
|
|
9
|
+
@query_pages ||= { "": query } if query
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def configure(pane)
|
|
13
|
+
pane.content do |content|
|
|
14
|
+
query_pages.each do |k,v|
|
|
15
|
+
stories = Helpers::Shortcut.search_stories(query: v)
|
|
16
|
+
stories.each do |story|
|
|
17
|
+
display = Helpers::Shortcut::Formatter.story(story)
|
|
18
|
+
content.add_row(display, story, page: k.to_s)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
pane.selection('enter', 'Open in Shortcut') do |story|
|
|
23
|
+
url = story['app_url']
|
|
24
|
+
`open #{url}`
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/lib/wassup/version.rb
CHANGED
data/lib/wassup.rb
CHANGED
|
@@ -9,6 +9,11 @@ require "wassup/helpers/github"
|
|
|
9
9
|
require "wassup/helpers/netlify"
|
|
10
10
|
require "wassup/helpers/shortcut"
|
|
11
11
|
|
|
12
|
+
require "wassup/panes/circleci"
|
|
13
|
+
require "wassup/panes/github"
|
|
14
|
+
require "wassup/panes/netlify"
|
|
15
|
+
require "wassup/panes/shortcut"
|
|
16
|
+
|
|
12
17
|
module Wassup
|
|
13
18
|
class Error < StandardError; end
|
|
14
19
|
# Your code goes here...
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: wassup
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Holtz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-06-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: curses
|
|
@@ -77,6 +77,7 @@ files:
|
|
|
77
77
|
- docs/src/pages/index.module.css
|
|
78
78
|
- docs/src/pages/index.tsx
|
|
79
79
|
- docs/src/pages/markdown-page.md
|
|
80
|
+
- docs/src/pages/showcase.md
|
|
80
81
|
- docs/static/.nojekyll
|
|
81
82
|
- docs/static/img/demo-supfile.png
|
|
82
83
|
- docs/static/img/favicon.ico
|
|
@@ -108,6 +109,10 @@ files:
|
|
|
108
109
|
- lib/wassup/helpers/shortcut.rb
|
|
109
110
|
- lib/wassup/pane.rb
|
|
110
111
|
- lib/wassup/pane_builder.rb
|
|
112
|
+
- lib/wassup/panes/circleci.rb
|
|
113
|
+
- lib/wassup/panes/github.rb
|
|
114
|
+
- lib/wassup/panes/netlify.rb
|
|
115
|
+
- lib/wassup/panes/shortcut.rb
|
|
111
116
|
- lib/wassup/version.rb
|
|
112
117
|
- wassup.gemspec
|
|
113
118
|
homepage: https://github.com/joshdholtz/wassup
|
|
@@ -131,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
131
136
|
- !ruby/object:Gem::Version
|
|
132
137
|
version: '0'
|
|
133
138
|
requirements: []
|
|
134
|
-
rubygems_version: 3.2.
|
|
139
|
+
rubygems_version: 3.2.33
|
|
135
140
|
signing_key:
|
|
136
141
|
specification_version: 4
|
|
137
142
|
summary: A scriptable terminal dashboard
|