aptible-cli 0.25.0 → 0.26.2
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/.github/workflows/release.yml +27 -0
- data/.github/workflows/test.yml +1 -1
- data/Dockerfile +8 -5
- data/Gemfile.lock +28 -17
- data/Makefile +53 -2
- data/README.md +83 -82
- data/aptible-cli.gemspec +5 -2
- data/docker-compose.yml +5 -1
- data/lib/aptible/cli/agent.rb +16 -0
- data/lib/aptible/cli/helpers/aws_account.rb +158 -0
- data/lib/aptible/cli/helpers/database.rb +182 -2
- data/lib/aptible/cli/helpers/token.rb +14 -0
- data/lib/aptible/cli/renderer/text.rb +33 -2
- data/lib/aptible/cli/resource_formatter.rb +2 -2
- data/lib/aptible/cli/subcommands/apps.rb +2 -2
- data/lib/aptible/cli/subcommands/aws_accounts.rb +252 -0
- data/lib/aptible/cli/subcommands/config.rb +6 -6
- data/lib/aptible/cli/subcommands/db.rb +67 -3
- data/lib/aptible/cli/subcommands/deploy.rb +46 -12
- data/lib/aptible/cli/subcommands/organizations.rb +55 -0
- data/lib/aptible/cli/subcommands/rebuild.rb +2 -1
- data/lib/aptible/cli/subcommands/restart.rb +2 -1
- data/lib/aptible/cli/subcommands/services.rb +24 -12
- data/lib/aptible/cli/subcommands/ssh.rb +1 -1
- data/lib/aptible/cli/version.rb +1 -1
- data/spec/aptible/cli/agent_spec.rb +70 -0
- data/spec/aptible/cli/helpers/database_spec.rb +118 -0
- data/spec/aptible/cli/helpers/token_spec.rb +70 -0
- data/spec/aptible/cli/subcommands/db_spec.rb +553 -0
- data/spec/aptible/cli/subcommands/deploy_spec.rb +42 -7
- data/spec/aptible/cli/subcommands/external_aws_accounts_spec.rb +737 -0
- data/spec/aptible/cli/subcommands/organizations_spec.rb +90 -0
- data/spec/aptible/cli/subcommands/services_spec.rb +77 -0
- data/spec/fabricators/app_external_aws_rds_connection_fabricator.rb +55 -0
- data/spec/fabricators/external_aws_account_fabricator.rb +49 -0
- data/spec/fabricators/external_aws_database_credential_fabricator.rb +46 -0
- data/spec/fabricators/external_aws_resource_fabricator.rb +72 -0
- metadata +65 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 800b50ac57828f37560b0a291a280fbf4e9bbf121b35fd812d662e45ef39bd45
|
|
4
|
+
data.tar.gz: e0c70006be582d93f6e5648fae3894a481bde9cc9b43042ee399e745790aac95
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3653523bd6b9f944e5f88128a63c058aee80722288a44f5886393059f8b1ca2f7c506c45a7df06e0794ba75814574e36372ff02c73ee1efcd1c20ee803b1d0a1
|
|
7
|
+
data.tar.gz: a47e8d8f71c9ac07d5001ad65616ac123884ac97ed5ab151d6d8895564bffffa623e1ef055b32fc3d4d0c661a9e71b72859b84480bde108f645f7ce33252e81f
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
on:
|
|
2
|
+
release:
|
|
3
|
+
types: [published]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
push:
|
|
7
|
+
name: Push gem to RubyGems.org
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
id-token: write
|
|
12
|
+
contents: write
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
|
|
16
|
+
with:
|
|
17
|
+
persist-credentials: false
|
|
18
|
+
- name: Set up Ruby
|
|
19
|
+
uses: ruby/setup-ruby@211ffaaa5f8dda97e9e8bca4e70d0fbaf2f8c41c
|
|
20
|
+
with:
|
|
21
|
+
bundler-cache: false
|
|
22
|
+
ruby-version: "3.3"
|
|
23
|
+
|
|
24
|
+
- run: bundle install
|
|
25
|
+
|
|
26
|
+
- uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b
|
|
27
|
+
|
data/.github/workflows/test.yml
CHANGED
data/Dockerfile
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
ARG RUBY_VERSION=2.3.1
|
|
2
|
+
FROM ruby:${RUBY_VERSION}
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
ENV BUNDLER_VERSION
|
|
5
|
-
RUN
|
|
4
|
+
ARG BUNDLER_VERSION=1.17.3
|
|
5
|
+
ENV BUNDLER_VERSION=${BUNDLER_VERSION}
|
|
6
|
+
RUN if [ "${BUNDLER_VERSION}" != "" ] ; then \
|
|
7
|
+
gem install bundler -v "${BUNDLER_VERSION}" ; \
|
|
8
|
+
fi
|
|
6
9
|
|
|
7
10
|
# Install required gems before copying in code
|
|
8
11
|
# to avoid re-installing gems when developing
|
|
@@ -12,7 +15,7 @@ COPY Gemfile.lock /app
|
|
|
12
15
|
COPY aptible-cli.gemspec /app
|
|
13
16
|
|
|
14
17
|
# We reference the version, so copy that in, too
|
|
15
|
-
|
|
18
|
+
RUN mkdir -p /app/lib/aptible/cli/
|
|
16
19
|
COPY lib/aptible/cli/version.rb /app/lib/aptible/cli/
|
|
17
20
|
|
|
18
21
|
RUN bundle install
|
data/Gemfile.lock
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
aptible-cli (0.
|
|
4
|
+
aptible-cli (0.26.2)
|
|
5
5
|
activesupport (>= 4.0, < 6.0)
|
|
6
|
-
aptible-api (~> 1.
|
|
7
|
-
aptible-auth (~> 1.
|
|
6
|
+
aptible-api (~> 1.12)
|
|
7
|
+
aptible-auth (~> 1.4)
|
|
8
8
|
aptible-billing (~> 1.0)
|
|
9
9
|
aptible-resource (~> 1.1)
|
|
10
10
|
aws-eventstream (~> 1.1.1)
|
|
@@ -35,21 +35,21 @@ GEM
|
|
|
35
35
|
tzinfo (~> 1.1)
|
|
36
36
|
addressable (2.8.0)
|
|
37
37
|
public_suffix (>= 2.0.2, < 5.0)
|
|
38
|
-
aptible-api (1.
|
|
38
|
+
aptible-api (1.12.2)
|
|
39
39
|
aptible-auth
|
|
40
40
|
aptible-resource
|
|
41
41
|
gem_config
|
|
42
42
|
multipart-post (< 2.2.0)
|
|
43
|
-
aptible-auth (1.
|
|
43
|
+
aptible-auth (1.5.0)
|
|
44
44
|
aptible-resource (~> 1.0)
|
|
45
45
|
gem_config
|
|
46
46
|
multipart-post (= 2.1.1)
|
|
47
|
-
oauth2 (=
|
|
47
|
+
oauth2 (= 2.0.9)
|
|
48
48
|
aptible-billing (1.0.1)
|
|
49
49
|
activesupport (>= 4.0, < 6.0)
|
|
50
50
|
aptible-resource (~> 1.0)
|
|
51
51
|
stripe (>= 1.13.0)
|
|
52
|
-
aptible-resource (1.1.
|
|
52
|
+
aptible-resource (1.1.4)
|
|
53
53
|
activesupport
|
|
54
54
|
fridge
|
|
55
55
|
gem_config (~> 0.3.1)
|
|
@@ -71,7 +71,7 @@ GEM
|
|
|
71
71
|
aws-sigv4 (1.2.4)
|
|
72
72
|
aws-eventstream (~> 1, >= 1.0.2)
|
|
73
73
|
bigdecimal (1.3.5)
|
|
74
|
-
cbor (0.5.
|
|
74
|
+
cbor (0.5.10.1)
|
|
75
75
|
chronic_duration (0.10.6)
|
|
76
76
|
numerizer (~> 0.1.1)
|
|
77
77
|
climate_control (0.0.3)
|
|
@@ -86,37 +86,41 @@ GEM
|
|
|
86
86
|
fabrication (2.15.2)
|
|
87
87
|
faraday (0.17.6)
|
|
88
88
|
multipart-post (>= 1.2, < 3)
|
|
89
|
-
fridge (1.0.
|
|
89
|
+
fridge (1.0.1)
|
|
90
90
|
gem_config
|
|
91
91
|
jwt (~> 2.3.0)
|
|
92
92
|
gem_config (0.3.2)
|
|
93
93
|
git (1.7.0)
|
|
94
94
|
rchardet (~> 1.8)
|
|
95
95
|
hashdiff (1.1.1)
|
|
96
|
+
hashie (5.0.0)
|
|
96
97
|
httpclient (2.8.3)
|
|
98
|
+
httplog (1.5.0)
|
|
99
|
+
rack (>= 1.0)
|
|
100
|
+
rainbow (>= 2.0.0)
|
|
97
101
|
i18n (0.9.5)
|
|
98
102
|
concurrent-ruby (~> 1.0)
|
|
99
103
|
jmespath (1.6.2)
|
|
100
104
|
json (2.5.1)
|
|
101
105
|
jwt (2.3.0)
|
|
102
106
|
method_source (1.1.0)
|
|
103
|
-
minitest (5.
|
|
104
|
-
multi_json (1.15.0)
|
|
107
|
+
minitest (5.15.0)
|
|
105
108
|
multi_xml (0.6.0)
|
|
106
109
|
multipart-post (2.1.1)
|
|
107
110
|
net-http-persistent (3.1.0)
|
|
108
111
|
connection_pool (~> 2.2)
|
|
109
112
|
numerizer (0.1.1)
|
|
110
|
-
oauth2 (
|
|
111
|
-
faraday (>= 0.
|
|
113
|
+
oauth2 (2.0.9)
|
|
114
|
+
faraday (>= 0.17.3, < 3.0)
|
|
112
115
|
jwt (>= 1.0, < 3.0)
|
|
113
|
-
multi_json (~> 1.3)
|
|
114
116
|
multi_xml (~> 0.5)
|
|
115
|
-
rack (>= 1.2, <
|
|
117
|
+
rack (>= 1.2, < 4)
|
|
118
|
+
snaky_hash (~> 2.0)
|
|
119
|
+
version_gem (~> 1.1)
|
|
116
120
|
parser (2.7.2.0)
|
|
117
121
|
ast (~> 2.4.1)
|
|
118
122
|
powerpack (0.1.3)
|
|
119
|
-
pry (0.
|
|
123
|
+
pry (0.15.2)
|
|
120
124
|
coderay (~> 1.1)
|
|
121
125
|
method_source (~> 1.0)
|
|
122
126
|
public_suffix (3.1.1)
|
|
@@ -146,6 +150,9 @@ GEM
|
|
|
146
150
|
ruby-progressbar (~> 1.7)
|
|
147
151
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
148
152
|
ruby-progressbar (1.13.0)
|
|
153
|
+
snaky_hash (2.0.3)
|
|
154
|
+
hashie (>= 0.1.0, < 6)
|
|
155
|
+
version_gem (>= 1.1.8, < 3)
|
|
149
156
|
stripe (4.24.0)
|
|
150
157
|
faraday (~> 0.13)
|
|
151
158
|
net-http-persistent (~> 3.0)
|
|
@@ -154,13 +161,14 @@ GEM
|
|
|
154
161
|
tins (~> 1.0)
|
|
155
162
|
thor (0.20.3)
|
|
156
163
|
thread_safe (0.3.6)
|
|
157
|
-
tins (1.
|
|
164
|
+
tins (1.43.0)
|
|
158
165
|
bigdecimal
|
|
159
166
|
sync
|
|
160
167
|
tzinfo (1.2.11)
|
|
161
168
|
thread_safe (~> 0.1)
|
|
162
169
|
unicode-display_width (1.8.0)
|
|
163
170
|
uri_template (0.7.0)
|
|
171
|
+
version_gem (1.1.9)
|
|
164
172
|
webmock (3.16.2)
|
|
165
173
|
addressable (>= 2.8.0)
|
|
166
174
|
crack (>= 0.3.2)
|
|
@@ -176,6 +184,9 @@ DEPENDENCIES
|
|
|
176
184
|
bundler (~> 1.3)
|
|
177
185
|
climate_control (= 0.0.3)
|
|
178
186
|
fabrication (~> 2.15.2)
|
|
187
|
+
hashie (< 5.1)
|
|
188
|
+
httplog (< 1.6)
|
|
189
|
+
minitest (< 5.16)
|
|
179
190
|
pry
|
|
180
191
|
rack (~> 1.0)
|
|
181
192
|
rake
|
data/Makefile
CHANGED
|
@@ -1,10 +1,61 @@
|
|
|
1
|
+
|
|
2
|
+
export COMPOSE_IGNORE_ORPHANS ?= true
|
|
3
|
+
export RUBY_VERSION ?= 2.3.1
|
|
4
|
+
RUBY_VERSION_MAJOR = $(word 1,$(subst ., ,$(RUBY_VERSION)))
|
|
5
|
+
export BUNDLER_VERSION ?=
|
|
6
|
+
ifeq ($(BUNDLER_VERSION),)
|
|
7
|
+
ifeq ($(RUBY_VERSION_MAJOR),2)
|
|
8
|
+
export BUNDLER_VERSION = 1.17.3
|
|
9
|
+
endif
|
|
10
|
+
endif
|
|
11
|
+
export COMPOSE_PROJECT_NAME ?= aptible-cli-$(subst .,_,$(RUBY_VERSION))
|
|
12
|
+
|
|
13
|
+
## Build and pull docker compose images
|
|
1
14
|
build:
|
|
2
15
|
docker compose build --pull
|
|
3
16
|
|
|
17
|
+
## Open shell in a docker container, supports CMD=
|
|
4
18
|
bash: build
|
|
5
|
-
|
|
19
|
+
$(MAKE) run CMD=bash
|
|
20
|
+
|
|
21
|
+
CMD ?= bash
|
|
22
|
+
## Run command in a docker container, supports CMD=
|
|
23
|
+
run:
|
|
24
|
+
docker compose run cli $(CMD)
|
|
6
25
|
|
|
26
|
+
## Run tests in a docker container, supports ARGS=
|
|
7
27
|
test: build
|
|
8
|
-
|
|
28
|
+
$(MAKE) test-direct ARGS="$(ARGS)"
|
|
29
|
+
|
|
30
|
+
## Run tests in a docker container without building, supports ARGS=
|
|
31
|
+
test-direct:
|
|
32
|
+
docker compose run cli bundle exec rake $(ARGS)
|
|
33
|
+
|
|
34
|
+
## Run rubocop in a docker container, supports ARGS=
|
|
35
|
+
lint: build
|
|
36
|
+
$(MAKE) lint-direct ARGS="$(ARGS)"
|
|
37
|
+
|
|
38
|
+
## Run rubocop in a docker container without building, supports ARGS=
|
|
39
|
+
lint-direct:
|
|
40
|
+
docker compose run cli bundle exec rake rubocop $(ARGS)
|
|
41
|
+
|
|
42
|
+
## Clean up docker compose resources
|
|
43
|
+
clean:
|
|
44
|
+
docker compose down --remove-orphans --volumes
|
|
45
|
+
|
|
46
|
+
## Alias for clean
|
|
47
|
+
down: clean
|
|
48
|
+
|
|
49
|
+
sync-readme: build
|
|
50
|
+
docker compose run cli bundle exec script/sync-readme-usage
|
|
51
|
+
|
|
52
|
+
## Show this help message
|
|
53
|
+
help:
|
|
54
|
+
@echo "\n\033[1;34mAvailable targets:\033[0m\n"
|
|
55
|
+
@awk 'BEGIN {FS = ":"; prev = ""} \
|
|
56
|
+
/^## / {prev = substr($$0, 4); next} \
|
|
57
|
+
/^[a-zA-Z_-]+:/ {if (prev != "") printf " \033[1;36m%-20s\033[0m %s\n", $$1, prev; prev = ""} \
|
|
58
|
+
{prev = ""}' $(MAKEFILE_LIST) | sort
|
|
59
|
+
@echo
|
|
9
60
|
|
|
10
61
|
.PHONY: build bash test
|