doploy-cli 0.2.0__tar.gz → 0.2.1__tar.gz

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.
@@ -0,0 +1,155 @@
1
+ Metadata-Version: 2.4
2
+ Name: doploy-cli
3
+ Version: 0.2.1
4
+ Summary: doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal
5
+ License: MIT
6
+ Project-URL: Homepage, https://doploy.io
7
+ Project-URL: Documentation, https://docs.doploy.io
8
+ Project-URL: Dashboard, https://cloud.doploy.io
9
+ Keywords: doploy,odoo,deploy,ci,cli
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Topic :: Software Development :: Build Tools
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: httpx>=0.27
21
+ Dynamic: license-file
22
+
23
+ # doploy CLI
24
+
25
+ [![PyPI](https://img.shields.io/pypi/v/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
26
+ [![Python](https://img.shields.io/pypi/pyversions/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
27
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
28
+
29
+ The command line for [doploy](https://doploy.io), the Odoo hosting and CI platform.
30
+ Watch builds, read test results and logs, and drive deployments from your terminal.
31
+
32
+ ```console
33
+ $ doploy builds acme --type development
34
+ ID TYPE STATUS FQDN COMMIT_SHA CREATED
35
+ 418 development Active Error doploy-k3j9x2.doploy.site 9f1c2ab 2026-09-11T14:02:11
36
+
37
+ $ doploy tests 418
38
+ build 418 [Active Error] — 1 errors, 0 failures, 2 warnings
39
+
40
+ [ERROR] sale_custom.test_discounts
41
+ ```
42
+
43
+ ## Install
44
+
45
+ ```bash
46
+ pipx install doploy-cli
47
+ ```
48
+
49
+ or with `pip`, `uv`, or `pip install --user`:
50
+
51
+ ```bash
52
+ pip install doploy-cli
53
+ uv tool install doploy-cli
54
+ ```
55
+
56
+ Requires Python 3.10 or newer.
57
+
58
+ ## Sign in
59
+
60
+ ```bash
61
+ doploy login
62
+ ```
63
+
64
+ Your browser opens, you sign in with your doploy account, and the CLI is connected.
65
+ Sessions renew themselves. Sign out with `doploy logout`.
66
+
67
+ What the CLI may do is decided per app in **Settings → Connected apps** on the doploy
68
+ dashboard: read only, or read and deploy, on all projects or only some. Change it there at any
69
+ time; the change applies on the CLI's next command.
70
+
71
+ ## Quick start
72
+
73
+ ```bash
74
+ doploy projects # your projects and their ids
75
+ doploy builds <project-id> --type staging # recent builds
76
+ doploy build <build-id> # one build in full
77
+ doploy tests <build-id> --details # test failures with tracebacks
78
+ doploy logs <build-id> --source test -f # follow the test log until the build settles
79
+ ```
80
+
81
+ ## Commands
82
+
83
+ | Command | Description |
84
+ |---|---|
85
+ | `login` | Sign in with your browser |
86
+ | `logout` | Forget the saved session |
87
+ | `projects` | List your projects |
88
+ | `builds <project>` | Recent builds for a project. `--type development\|staging\|production`, `--limit` |
89
+ | `build <id>` | One build: status, commit, versions, error summary |
90
+ | `tests <build>` | Test failures for a build. `--details` prints tracebacks, `--warnings` includes warnings |
91
+ | `logs <build>` | Tail logs. `--source build\|test\|odoo`, `--lines`, `--filter TEXT`, `-f` to follow |
92
+ | `branch create <project> <name>` | Fork a development branch on GitHub and queue its build. `--from <branch-id>` |
93
+ | `rebuild <build>` | Queue a rebuild of a deployment |
94
+ | `restart <build>` | Restart the Odoo service |
95
+ | `update-modules <build> [modules]` | Run `odoo-bin -u` on the modules doploy detected as changed, or the ones you list. `--theme`, `--no-theme`, `--wait` |
96
+ | `operation <id>` | Check a queued module update. `--wait` |
97
+ | `backup <build>` | Take a database and filestore backup. `--comment`, `--wait` |
98
+
99
+ Commands that print tables accept `--json` for machine-readable output.
100
+
101
+ Anything aimed at a **production** deployment requires `--confirm`. Nothing destructive is
102
+ available: no deletes, no restores, no domain changes.
103
+
104
+ ## Examples
105
+
106
+ **Why did my build fail?**
107
+
108
+ ```bash
109
+ doploy builds acme --type development --limit 1
110
+ doploy tests 418 --details
111
+ doploy logs 418 --source test --filter ERROR
112
+ ```
113
+
114
+ **Follow a build as it runs**
115
+
116
+ ```bash
117
+ doploy logs 419 --source test -f
118
+ ```
119
+
120
+ Exits on its own when the build settles. `--source odoo` follows the running container's log
121
+ instead and runs until Ctrl-C.
122
+
123
+ **Ship a change to staging**
124
+
125
+ ```bash
126
+ doploy update-modules 302 --wait
127
+ ```
128
+
129
+ Updates exactly the modules doploy saw change in the last code update, waits for Odoo to finish,
130
+ and exits non-zero if the update failed. Add `--theme` to rebuild website theme assets, or leave it
131
+ out and doploy decides from the module list.
132
+
133
+ **Take a backup first**
134
+
135
+ ```bash
136
+ doploy backup 301 --confirm --wait --comment "before v2.4"
137
+ ```
138
+
139
+ ## Log sources
140
+
141
+ | `--source` | What you get |
142
+ |---|---|
143
+ | `build` | doploy's own build log and error summary. Fast, default. |
144
+ | `test` | The Odoo test run output of a development build. What actually failed. |
145
+ | `odoo` | The running Odoo container's log. Runtime tracebacks on staging and production. |
146
+
147
+ ## Links
148
+
149
+ - Documentation: https://docs.doploy.io/agents/cli
150
+ - Dashboard: https://cloud.doploy.io
151
+ - Support: support@doploy.io
152
+
153
+ ## License
154
+
155
+ MIT
@@ -0,0 +1,133 @@
1
+ # doploy CLI
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
4
+ [![Python](https://img.shields.io/pypi/pyversions/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
5
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ The command line for [doploy](https://doploy.io), the Odoo hosting and CI platform.
8
+ Watch builds, read test results and logs, and drive deployments from your terminal.
9
+
10
+ ```console
11
+ $ doploy builds acme --type development
12
+ ID TYPE STATUS FQDN COMMIT_SHA CREATED
13
+ 418 development Active Error doploy-k3j9x2.doploy.site 9f1c2ab 2026-09-11T14:02:11
14
+
15
+ $ doploy tests 418
16
+ build 418 [Active Error] — 1 errors, 0 failures, 2 warnings
17
+
18
+ [ERROR] sale_custom.test_discounts
19
+ ```
20
+
21
+ ## Install
22
+
23
+ ```bash
24
+ pipx install doploy-cli
25
+ ```
26
+
27
+ or with `pip`, `uv`, or `pip install --user`:
28
+
29
+ ```bash
30
+ pip install doploy-cli
31
+ uv tool install doploy-cli
32
+ ```
33
+
34
+ Requires Python 3.10 or newer.
35
+
36
+ ## Sign in
37
+
38
+ ```bash
39
+ doploy login
40
+ ```
41
+
42
+ Your browser opens, you sign in with your doploy account, and the CLI is connected.
43
+ Sessions renew themselves. Sign out with `doploy logout`.
44
+
45
+ What the CLI may do is decided per app in **Settings → Connected apps** on the doploy
46
+ dashboard: read only, or read and deploy, on all projects or only some. Change it there at any
47
+ time; the change applies on the CLI's next command.
48
+
49
+ ## Quick start
50
+
51
+ ```bash
52
+ doploy projects # your projects and their ids
53
+ doploy builds <project-id> --type staging # recent builds
54
+ doploy build <build-id> # one build in full
55
+ doploy tests <build-id> --details # test failures with tracebacks
56
+ doploy logs <build-id> --source test -f # follow the test log until the build settles
57
+ ```
58
+
59
+ ## Commands
60
+
61
+ | Command | Description |
62
+ |---|---|
63
+ | `login` | Sign in with your browser |
64
+ | `logout` | Forget the saved session |
65
+ | `projects` | List your projects |
66
+ | `builds <project>` | Recent builds for a project. `--type development\|staging\|production`, `--limit` |
67
+ | `build <id>` | One build: status, commit, versions, error summary |
68
+ | `tests <build>` | Test failures for a build. `--details` prints tracebacks, `--warnings` includes warnings |
69
+ | `logs <build>` | Tail logs. `--source build\|test\|odoo`, `--lines`, `--filter TEXT`, `-f` to follow |
70
+ | `branch create <project> <name>` | Fork a development branch on GitHub and queue its build. `--from <branch-id>` |
71
+ | `rebuild <build>` | Queue a rebuild of a deployment |
72
+ | `restart <build>` | Restart the Odoo service |
73
+ | `update-modules <build> [modules]` | Run `odoo-bin -u` on the modules doploy detected as changed, or the ones you list. `--theme`, `--no-theme`, `--wait` |
74
+ | `operation <id>` | Check a queued module update. `--wait` |
75
+ | `backup <build>` | Take a database and filestore backup. `--comment`, `--wait` |
76
+
77
+ Commands that print tables accept `--json` for machine-readable output.
78
+
79
+ Anything aimed at a **production** deployment requires `--confirm`. Nothing destructive is
80
+ available: no deletes, no restores, no domain changes.
81
+
82
+ ## Examples
83
+
84
+ **Why did my build fail?**
85
+
86
+ ```bash
87
+ doploy builds acme --type development --limit 1
88
+ doploy tests 418 --details
89
+ doploy logs 418 --source test --filter ERROR
90
+ ```
91
+
92
+ **Follow a build as it runs**
93
+
94
+ ```bash
95
+ doploy logs 419 --source test -f
96
+ ```
97
+
98
+ Exits on its own when the build settles. `--source odoo` follows the running container's log
99
+ instead and runs until Ctrl-C.
100
+
101
+ **Ship a change to staging**
102
+
103
+ ```bash
104
+ doploy update-modules 302 --wait
105
+ ```
106
+
107
+ Updates exactly the modules doploy saw change in the last code update, waits for Odoo to finish,
108
+ and exits non-zero if the update failed. Add `--theme` to rebuild website theme assets, or leave it
109
+ out and doploy decides from the module list.
110
+
111
+ **Take a backup first**
112
+
113
+ ```bash
114
+ doploy backup 301 --confirm --wait --comment "before v2.4"
115
+ ```
116
+
117
+ ## Log sources
118
+
119
+ | `--source` | What you get |
120
+ |---|---|
121
+ | `build` | doploy's own build log and error summary. Fast, default. |
122
+ | `test` | The Odoo test run output of a development build. What actually failed. |
123
+ | `odoo` | The running Odoo container's log. Runtime tracebacks on staging and production. |
124
+
125
+ ## Links
126
+
127
+ - Documentation: https://docs.doploy.io/agents/cli
128
+ - Dashboard: https://cloud.doploy.io
129
+ - Support: support@doploy.io
130
+
131
+ ## License
132
+
133
+ MIT
@@ -383,27 +383,28 @@ def cmd_update_modules(args):
383
383
  body['install_theme'] = args.theme
384
384
  data = _client(args).request('POST', f'/builds/{args.build_id}/update-modules', json=body)
385
385
  theme = ' with INSTALL_THEME=1' if data.get('install_theme') else ''
386
- print(f"update queued (task {data['task_id']}): {', '.join(data['modules'])}{theme}")
386
+ print(f"update queued (operation {data['operation_id']}): {', '.join(data['modules'])}{theme}")
387
387
  if not args.wait:
388
- print(f"poll with: doploy task {data['task_id']}")
388
+ print(f"check with: doploy operation {data['operation_id']}")
389
389
  return
390
- task = _wait_for_task(_client(args), data['task_id'], args.interval)
391
- _print_task(task)
392
- if task['status'] != 'completed' or (task.get('result') or {}).get('ok') is False:
390
+ op = _wait_for_operation(_client(args), data['operation_id'], args.interval)
391
+ _print_operation(op)
392
+ if op['status'] != 'completed' or (op.get('result') or {}).get('ok') is False:
393
393
  sys.exit(1)
394
394
 
395
395
 
396
- def _wait_for_task(client: Client, task_id: int, interval: float) -> dict:
396
+ def _wait_for_operation(client: Client, operation_id: int, interval: float) -> dict:
397
397
  while True:
398
- task = client.request('GET', f'/tasks/{task_id}')['task']
399
- if task['status'] in ('completed', 'failed', 'cancelled'):
400
- return task
398
+ op = client.request('GET', f'/operations/{operation_id}')['operation']
399
+ if op['status'] in ('completed', 'failed', 'cancelled'):
400
+ return op
401
401
  time.sleep(interval)
402
402
 
403
403
 
404
- def _print_task(task: dict) -> None:
405
- print(f"task {task['id']} [{task['status']}] {task['title']}")
406
- result = task.get('result')
404
+ def _print_operation(op: dict) -> None:
405
+ what = f"update modules {', '.join(op['modules'])}" if op.get('modules') else op.get('kind') or 'operation'
406
+ print(f"operation {op['id']} [{op['status']}] {what}")
407
+ result = op.get('result')
407
408
  if result:
408
409
  if 'exit_code' in result:
409
410
  print(f"exit code: {result['exit_code']}")
@@ -413,14 +414,14 @@ def _print_task(task: dict) -> None:
413
414
  print(result['output'])
414
415
 
415
416
 
416
- def cmd_task(args):
417
+ def cmd_operation(args):
417
418
  client = _client(args)
418
- task = _wait_for_task(client, args.task_id, args.interval) if args.wait \
419
- else client.request('GET', f'/tasks/{args.task_id}')['task']
419
+ op = _wait_for_operation(client, args.operation_id, args.interval) if args.wait \
420
+ else client.request('GET', f'/operations/{args.operation_id}')['operation']
420
421
  if args.json:
421
- print(json.dumps(task, indent=2))
422
+ print(json.dumps(op, indent=2))
422
423
  return
423
- _print_task(task)
424
+ _print_operation(op)
424
425
 
425
426
 
426
427
  def cmd_backup(args):
@@ -529,12 +530,12 @@ def main(argv=None):
529
530
  sp.add_argument('--interval', type=float, default=10.0, help='poll seconds for --wait')
530
531
  sp.set_defaults(func=cmd_update_modules)
531
532
 
532
- sp = sub.add_parser('task', help='show a queued task (module update)')
533
- sp.add_argument('task_id', type=int)
533
+ sp = sub.add_parser('operation', help='check a queued module update')
534
+ sp.add_argument('operation_id', type=int)
534
535
  sp.add_argument('--wait', action='store_true', help='block until it finishes')
535
536
  sp.add_argument('--interval', type=float, default=10.0)
536
537
  sp.add_argument('--json', action='store_true')
537
- sp.set_defaults(func=cmd_task)
538
+ sp.set_defaults(func=cmd_operation)
538
539
 
539
540
  sp = sub.add_parser('backup', help='start a backup of a deployment (deploy scope)')
540
541
  sp.add_argument('build_id', type=int)
@@ -0,0 +1,155 @@
1
+ Metadata-Version: 2.4
2
+ Name: doploy-cli
3
+ Version: 0.2.1
4
+ Summary: doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal
5
+ License: MIT
6
+ Project-URL: Homepage, https://doploy.io
7
+ Project-URL: Documentation, https://docs.doploy.io
8
+ Project-URL: Dashboard, https://cloud.doploy.io
9
+ Keywords: doploy,odoo,deploy,ci,cli
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Topic :: Software Development :: Build Tools
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: httpx>=0.27
21
+ Dynamic: license-file
22
+
23
+ # doploy CLI
24
+
25
+ [![PyPI](https://img.shields.io/pypi/v/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
26
+ [![Python](https://img.shields.io/pypi/pyversions/doploy-cli.svg)](https://pypi.org/project/doploy-cli/)
27
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
28
+
29
+ The command line for [doploy](https://doploy.io), the Odoo hosting and CI platform.
30
+ Watch builds, read test results and logs, and drive deployments from your terminal.
31
+
32
+ ```console
33
+ $ doploy builds acme --type development
34
+ ID TYPE STATUS FQDN COMMIT_SHA CREATED
35
+ 418 development Active Error doploy-k3j9x2.doploy.site 9f1c2ab 2026-09-11T14:02:11
36
+
37
+ $ doploy tests 418
38
+ build 418 [Active Error] — 1 errors, 0 failures, 2 warnings
39
+
40
+ [ERROR] sale_custom.test_discounts
41
+ ```
42
+
43
+ ## Install
44
+
45
+ ```bash
46
+ pipx install doploy-cli
47
+ ```
48
+
49
+ or with `pip`, `uv`, or `pip install --user`:
50
+
51
+ ```bash
52
+ pip install doploy-cli
53
+ uv tool install doploy-cli
54
+ ```
55
+
56
+ Requires Python 3.10 or newer.
57
+
58
+ ## Sign in
59
+
60
+ ```bash
61
+ doploy login
62
+ ```
63
+
64
+ Your browser opens, you sign in with your doploy account, and the CLI is connected.
65
+ Sessions renew themselves. Sign out with `doploy logout`.
66
+
67
+ What the CLI may do is decided per app in **Settings → Connected apps** on the doploy
68
+ dashboard: read only, or read and deploy, on all projects or only some. Change it there at any
69
+ time; the change applies on the CLI's next command.
70
+
71
+ ## Quick start
72
+
73
+ ```bash
74
+ doploy projects # your projects and their ids
75
+ doploy builds <project-id> --type staging # recent builds
76
+ doploy build <build-id> # one build in full
77
+ doploy tests <build-id> --details # test failures with tracebacks
78
+ doploy logs <build-id> --source test -f # follow the test log until the build settles
79
+ ```
80
+
81
+ ## Commands
82
+
83
+ | Command | Description |
84
+ |---|---|
85
+ | `login` | Sign in with your browser |
86
+ | `logout` | Forget the saved session |
87
+ | `projects` | List your projects |
88
+ | `builds <project>` | Recent builds for a project. `--type development\|staging\|production`, `--limit` |
89
+ | `build <id>` | One build: status, commit, versions, error summary |
90
+ | `tests <build>` | Test failures for a build. `--details` prints tracebacks, `--warnings` includes warnings |
91
+ | `logs <build>` | Tail logs. `--source build\|test\|odoo`, `--lines`, `--filter TEXT`, `-f` to follow |
92
+ | `branch create <project> <name>` | Fork a development branch on GitHub and queue its build. `--from <branch-id>` |
93
+ | `rebuild <build>` | Queue a rebuild of a deployment |
94
+ | `restart <build>` | Restart the Odoo service |
95
+ | `update-modules <build> [modules]` | Run `odoo-bin -u` on the modules doploy detected as changed, or the ones you list. `--theme`, `--no-theme`, `--wait` |
96
+ | `operation <id>` | Check a queued module update. `--wait` |
97
+ | `backup <build>` | Take a database and filestore backup. `--comment`, `--wait` |
98
+
99
+ Commands that print tables accept `--json` for machine-readable output.
100
+
101
+ Anything aimed at a **production** deployment requires `--confirm`. Nothing destructive is
102
+ available: no deletes, no restores, no domain changes.
103
+
104
+ ## Examples
105
+
106
+ **Why did my build fail?**
107
+
108
+ ```bash
109
+ doploy builds acme --type development --limit 1
110
+ doploy tests 418 --details
111
+ doploy logs 418 --source test --filter ERROR
112
+ ```
113
+
114
+ **Follow a build as it runs**
115
+
116
+ ```bash
117
+ doploy logs 419 --source test -f
118
+ ```
119
+
120
+ Exits on its own when the build settles. `--source odoo` follows the running container's log
121
+ instead and runs until Ctrl-C.
122
+
123
+ **Ship a change to staging**
124
+
125
+ ```bash
126
+ doploy update-modules 302 --wait
127
+ ```
128
+
129
+ Updates exactly the modules doploy saw change in the last code update, waits for Odoo to finish,
130
+ and exits non-zero if the update failed. Add `--theme` to rebuild website theme assets, or leave it
131
+ out and doploy decides from the module list.
132
+
133
+ **Take a backup first**
134
+
135
+ ```bash
136
+ doploy backup 301 --confirm --wait --comment "before v2.4"
137
+ ```
138
+
139
+ ## Log sources
140
+
141
+ | `--source` | What you get |
142
+ |---|---|
143
+ | `build` | doploy's own build log and error summary. Fast, default. |
144
+ | `test` | The Odoo test run output of a development build. What actually failed. |
145
+ | `odoo` | The running Odoo container's log. Runtime tracebacks on staging and production. |
146
+
147
+ ## Links
148
+
149
+ - Documentation: https://docs.doploy.io/agents/cli
150
+ - Dashboard: https://cloud.doploy.io
151
+ - Support: support@doploy.io
152
+
153
+ ## License
154
+
155
+ MIT
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "doploy-cli"
7
- version = "0.2.0"
8
- description = "doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal or CI"
7
+ version = "0.2.1"
8
+ description = "doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
11
11
  requires-python = ">=3.10"
doploy_cli-0.2.0/PKG-INFO DELETED
@@ -1,63 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: doploy-cli
3
- Version: 0.2.0
4
- Summary: doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal or CI
5
- License: MIT
6
- Project-URL: Homepage, https://doploy.io
7
- Project-URL: Documentation, https://docs.doploy.io
8
- Project-URL: Dashboard, https://cloud.doploy.io
9
- Keywords: doploy,odoo,deploy,ci,cli
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Environment :: Console
12
- Classifier: Intended Audience :: Developers
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3 :: Only
16
- Classifier: Topic :: Software Development :: Build Tools
17
- Requires-Python: >=3.10
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
- Requires-Dist: httpx>=0.27
21
- Dynamic: license-file
22
-
23
- # doploy CLI
24
-
25
- Watch builds, read logs, and drive your Odoo deployments on [doploy](https://doploy.io)
26
- from a terminal or a CI pipeline.
27
-
28
- ```bash
29
- pipx install doploy-cli
30
- doploy login # opens your browser; no tokens to paste
31
- doploy projects
32
- doploy builds <project-id> --type production
33
- doploy logs <build-id> --source test -f
34
- doploy update-modules <build-id> --wait
35
- ```
36
-
37
- ## Auth
38
-
39
- `doploy login` signs you in with your doploy account (OAuth, PKCE, loopback
40
- callback). Tokens refresh themselves and live in `~/.config/doploy/config.json`
41
- (mode 0600). Whether the CLI may deploy is controlled per app in
42
- Settings > Connected apps.
43
-
44
-
45
- ## Commands
46
-
47
- | Command | What it does |
48
- |---|---|
49
- | `projects` | List your projects |
50
- | `builds <project>` | Recent builds, filter with `--type` |
51
- | `build <id>` | One build in full |
52
- | `tests <build>` | Test failures, `--details` for tracebacks |
53
- | `logs <build>` | Tail logs; `--source build\|test\|odoo`, `-f` to follow |
54
- | `branch create <project> <name>` | Fork a dev branch and queue its build |
55
- | `rebuild <build>` | Queue a rebuild |
56
- | `restart <build>` | Restart the Odoo service |
57
- | `update-modules <build> [modules]` | Run `odoo-bin -u`; `--theme`, `--wait` |
58
- | `backup <build>` | Start a backup; `--wait` |
59
- | `task <id>` | Poll a queued task |
60
- | `logout` | Forget saved credentials |
61
-
62
- Production targets always need `--confirm`. Destructive operations
63
- (deletes, restores) are not exposed.
@@ -1,41 +0,0 @@
1
- # doploy CLI
2
-
3
- Watch builds, read logs, and drive your Odoo deployments on [doploy](https://doploy.io)
4
- from a terminal or a CI pipeline.
5
-
6
- ```bash
7
- pipx install doploy-cli
8
- doploy login # opens your browser; no tokens to paste
9
- doploy projects
10
- doploy builds <project-id> --type production
11
- doploy logs <build-id> --source test -f
12
- doploy update-modules <build-id> --wait
13
- ```
14
-
15
- ## Auth
16
-
17
- `doploy login` signs you in with your doploy account (OAuth, PKCE, loopback
18
- callback). Tokens refresh themselves and live in `~/.config/doploy/config.json`
19
- (mode 0600). Whether the CLI may deploy is controlled per app in
20
- Settings > Connected apps.
21
-
22
-
23
- ## Commands
24
-
25
- | Command | What it does |
26
- |---|---|
27
- | `projects` | List your projects |
28
- | `builds <project>` | Recent builds, filter with `--type` |
29
- | `build <id>` | One build in full |
30
- | `tests <build>` | Test failures, `--details` for tracebacks |
31
- | `logs <build>` | Tail logs; `--source build\|test\|odoo`, `-f` to follow |
32
- | `branch create <project> <name>` | Fork a dev branch and queue its build |
33
- | `rebuild <build>` | Queue a rebuild |
34
- | `restart <build>` | Restart the Odoo service |
35
- | `update-modules <build> [modules]` | Run `odoo-bin -u`; `--theme`, `--wait` |
36
- | `backup <build>` | Start a backup; `--wait` |
37
- | `task <id>` | Poll a queued task |
38
- | `logout` | Forget saved credentials |
39
-
40
- Production targets always need `--confirm`. Destructive operations
41
- (deletes, restores) are not exposed.
@@ -1,63 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: doploy-cli
3
- Version: 0.2.0
4
- Summary: doploy CLI: watch builds, read logs, and drive Odoo deployments from a terminal or CI
5
- License: MIT
6
- Project-URL: Homepage, https://doploy.io
7
- Project-URL: Documentation, https://docs.doploy.io
8
- Project-URL: Dashboard, https://cloud.doploy.io
9
- Keywords: doploy,odoo,deploy,ci,cli
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Environment :: Console
12
- Classifier: Intended Audience :: Developers
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3 :: Only
16
- Classifier: Topic :: Software Development :: Build Tools
17
- Requires-Python: >=3.10
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
- Requires-Dist: httpx>=0.27
21
- Dynamic: license-file
22
-
23
- # doploy CLI
24
-
25
- Watch builds, read logs, and drive your Odoo deployments on [doploy](https://doploy.io)
26
- from a terminal or a CI pipeline.
27
-
28
- ```bash
29
- pipx install doploy-cli
30
- doploy login # opens your browser; no tokens to paste
31
- doploy projects
32
- doploy builds <project-id> --type production
33
- doploy logs <build-id> --source test -f
34
- doploy update-modules <build-id> --wait
35
- ```
36
-
37
- ## Auth
38
-
39
- `doploy login` signs you in with your doploy account (OAuth, PKCE, loopback
40
- callback). Tokens refresh themselves and live in `~/.config/doploy/config.json`
41
- (mode 0600). Whether the CLI may deploy is controlled per app in
42
- Settings > Connected apps.
43
-
44
-
45
- ## Commands
46
-
47
- | Command | What it does |
48
- |---|---|
49
- | `projects` | List your projects |
50
- | `builds <project>` | Recent builds, filter with `--type` |
51
- | `build <id>` | One build in full |
52
- | `tests <build>` | Test failures, `--details` for tracebacks |
53
- | `logs <build>` | Tail logs; `--source build\|test\|odoo`, `-f` to follow |
54
- | `branch create <project> <name>` | Fork a dev branch and queue its build |
55
- | `rebuild <build>` | Queue a rebuild |
56
- | `restart <build>` | Restart the Odoo service |
57
- | `update-modules <build> [modules]` | Run `odoo-bin -u`; `--theme`, `--wait` |
58
- | `backup <build>` | Start a backup; `--wait` |
59
- | `task <id>` | Poll a queued task |
60
- | `logout` | Forget saved credentials |
61
-
62
- Production targets always need `--confirm`. Destructive operations
63
- (deletes, restores) are not exposed.
File without changes
File without changes