gdkbox 0.1.3 → 0.1.5
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/README.md +16 -4
- data/lib/gdkbox/box.rb +4 -1
- data/lib/gdkbox/docker.rb +5 -0
- data/lib/gdkbox/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 851b8b309a5e04c8e48d1090e45453b0f8464779a0d1cb30aaa69e5edf0829fe
|
|
4
|
+
data.tar.gz: 01af5d8bd6d09cca936bf801f22a82ff143e4357b86ce47dc6478659d19d3f9e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9a5201a873d0f54c7864f2e746e7077ea406f12f6ffce032280579ab1241d74fd743e6a4376204d89aa73bb75f30cdb697cc9bb99e3253e5f819d9e03d0adf17
|
|
7
|
+
data.tar.gz: 569e92b7c9d527932912790e6a0e2b48be01920d5bd29cd80788673827adc17a2230fcd66f212f006b704f5e8b8b7fcee4154d0d7d502ff87e470d7b10afca31
|
data/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# gdkbox
|
|
2
2
|
|
|
3
|
+
[](https://rubygems.org/gems/gdkbox)
|
|
4
|
+
[](https://rubygems.org/gems/gdkbox)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
3
7
|
Spin up a [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit)
|
|
4
8
|
"in a box" with a single command, then connect to it from **VS Code** and run
|
|
5
9
|
**Claude Code** agents against a real GitLab development environment.
|
|
@@ -51,14 +55,22 @@ gdkbox ls # list your boxes and their status
|
|
|
51
55
|
|
|
52
56
|
## Install
|
|
53
57
|
|
|
54
|
-
|
|
58
|
+
`gdkbox` is published on [RubyGems](https://rubygems.org/gems/gdkbox):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
gem install gdkbox
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### From source
|
|
65
|
+
|
|
66
|
+
To build and install from a checkout of this repository:
|
|
55
67
|
|
|
56
68
|
```sh
|
|
57
69
|
gem build gdkbox.gemspec
|
|
58
|
-
gem install ./gdkbox
|
|
70
|
+
gem install ./gdkbox-*.gem
|
|
59
71
|
```
|
|
60
72
|
|
|
61
|
-
Or run it straight from
|
|
73
|
+
Or run it straight from the checkout without installing:
|
|
62
74
|
|
|
63
75
|
```sh
|
|
64
76
|
./bin/gdkbox up myenv
|
|
@@ -68,7 +80,7 @@ Or run it straight from a checkout without installing:
|
|
|
68
80
|
|
|
69
81
|
| Command | Description |
|
|
70
82
|
| --- | --- |
|
|
71
|
-
| `gdkbox up NAME` | Pull the GDK image, start a box, enable SSH, install Claude Code, register VS Code host. |
|
|
83
|
+
| `gdkbox up NAME` | Pull the GDK image (only if not already local), start a box, enable SSH, install Claude Code, register VS Code host. |
|
|
72
84
|
| `gdkbox update-image` | Pull the latest GDK-in-a-box image, with a progress bar and download speed (`--image` to override). |
|
|
73
85
|
| `gdkbox ls` | List boxes and their container status (`--json` for orchestrators). |
|
|
74
86
|
| `gdkbox status NAME` | Show container state and connection details (`--json`). |
|
data/lib/gdkbox/box.rb
CHANGED
|
@@ -88,7 +88,10 @@ module GDKBox
|
|
|
88
88
|
public_key = @ssh_key.ensure!
|
|
89
89
|
cname = @config.container_name(name)
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
# Only pull when the image is missing locally, so `gdkbox up` on a warm
|
|
92
|
+
# machine does not hit the registry; `gdkbox update-image` is the
|
|
93
|
+
# explicit way to refresh.
|
|
94
|
+
@docker.pull(image) unless @docker.image_exists?(image)
|
|
92
95
|
|
|
93
96
|
# Reserve the host ports atomically. `next_port` reads the store, so
|
|
94
97
|
# parallel `gdkbox up` runs would otherwise all pick the same "next free"
|
data/lib/gdkbox/docker.rb
CHANGED
|
@@ -15,6 +15,11 @@ module GDKBox
|
|
|
15
15
|
!@shell.which("docker").nil?
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
# Whether the image is already present locally.
|
|
19
|
+
def image_exists?(image)
|
|
20
|
+
@shell.run("docker", "image", "inspect", image).success?
|
|
21
|
+
end
|
|
22
|
+
|
|
18
23
|
# Pull an image. With no block the pull runs quietly and the (captured)
|
|
19
24
|
# Result is returned. With a block the pull is streamed and the block is
|
|
20
25
|
# called with a PullProgress after every line of `docker pull` output, so a
|
data/lib/gdkbox/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gdkbox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- jotolo
|
|
@@ -72,9 +72,14 @@ files:
|
|
|
72
72
|
- lib/gdkbox/version.rb
|
|
73
73
|
- lib/gdkbox/vscode.rb
|
|
74
74
|
- skills/gdkbox-fleet/SKILL.md
|
|
75
|
+
homepage: https://gitlab.com/jotolo_gl/gdkbox
|
|
75
76
|
licenses:
|
|
76
77
|
- MIT
|
|
77
|
-
metadata:
|
|
78
|
+
metadata:
|
|
79
|
+
source_code_uri: https://gitlab.com/jotolo_gl/gdkbox
|
|
80
|
+
bug_tracker_uri: https://gitlab.com/jotolo_gl/gdkbox/-/issues
|
|
81
|
+
documentation_uri: https://gitlab.com/jotolo_gl/gdkbox/-/blob/main/README.md
|
|
82
|
+
rubygems_mfa_required: 'true'
|
|
78
83
|
rdoc_options: []
|
|
79
84
|
require_paths:
|
|
80
85
|
- lib
|