@capawesome/cli 4.18.4 → 4.20.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [4.20.0](https://github.com/capawesome-team/cli/compare/v4.19.0...v4.20.0) (2026-09-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * **apps:** warn about missing git connections before importing apps ([#221](https://github.com/capawesome-team/cli/issues/221)) ([2b4646d](https://github.com/capawesome-team/cli/commit/2b4646d4c2cbcc3c8dd54c68021a9f1ed47c9521))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **apps:** remove extracted export on cancelled prompts and signals ([#219](https://github.com/capawesome-team/cli/issues/219)) ([0356500](https://github.com/capawesome-team/cli/commit/035650041f456d5831ecf2fff8cee5fb231db8db))
16
+ * **apps:** rename imported resources whose names only differ in case ([#218](https://github.com/capawesome-team/cli/issues/218)) ([135b577](https://github.com/capawesome-team/cli/commit/135b577e86620dd71d9297a4124a2db2fd1cf15f))
17
+
18
+ ## [4.19.0](https://github.com/capawesome-team/cli/compare/v4.18.4...v4.19.0) (2026-09-22)
19
+
20
+
21
+ ### Features
22
+
23
+ * add `apps:import` command ([#217](https://github.com/capawesome-team/cli/issues/217)) ([db90d04](https://github.com/capawesome-team/cli/commit/db90d04d3001e517fa105f37b79be82c146260ba))
24
+ * **apps:** support multiple and negated trigger patterns ([#214](https://github.com/capawesome-team/cli/issues/214)) ([0f56afa](https://github.com/capawesome-team/cli/commit/0f56afadfb24c3411f63d380d66188055a23388c))
25
+
5
26
  ## [4.18.4](https://github.com/capawesome-team/cli/compare/v4.18.3...v4.18.4) (2026-08-20)
6
27
 
7
28
 
package/README.md CHANGED
@@ -22,7 +22,7 @@ The Capawesome Cloud CLI can be invoked with the `@capawesome/cli` command.
22
22
  npx @capawesome/cli <command> [options]
23
23
  ```
24
24
 
25
- You can find a list of available commands in the [Command Reference](https://capawesome.io/cloud/cli/).
25
+ You can find a list of available commands in the [Command Reference](https://capawesome.io/docs/cloud/cli/commands/).
26
26
 
27
27
  ## Help
28
28
 
@@ -34,9 +34,9 @@ export default defineCommand({
34
34
  .optional()
35
35
  .describe('The build stack to use for the build process.'),
36
36
  triggerPattern: z
37
- .string()
37
+ .array(z.string())
38
38
  .optional()
39
- .describe('Only trigger for branches or tags matching this pattern. Defaults to all.'),
39
+ .describe('Only trigger for branches or tags matching this pattern. Prefix with `!` to exclude. Can be specified multiple times. Defaults to all.'),
40
40
  triggerType: z
41
41
  .enum(['branch', 'tag'], {
42
42
  message: 'Trigger type must be either `branch` or `tag`.',
@@ -44,8 +44,8 @@ export default defineCommand({
44
44
  .optional()
45
45
  .describe('What triggers the automation. Supported values are `branch` and `tag`.'),
46
46
  type: z
47
- .enum(['app-store', 'ad-hoc', 'debug', 'development', 'release', 'simulator'], {
48
- message: 'Build type must be one of `app-store`, `ad-hoc`, `debug`, `development`, `release`, or `simulator`.',
47
+ .enum(['app-store', 'ad-hoc', 'debug', 'development', 'enterprise', 'release', 'simulator'], {
48
+ message: 'Build type must be one of `app-store`, `ad-hoc`, `debug`, `development`, `enterprise`, `release`, or `simulator`.',
49
49
  })
50
50
  .optional()
51
51
  .describe('The type of build to create.'),
@@ -127,7 +127,7 @@ export default defineCommand({
127
127
  commitMessagePattern: options.commitMessagePattern,
128
128
  name,
129
129
  platform,
130
- triggerPattern: options.triggerPattern,
130
+ triggerPatterns: options.triggerPattern,
131
131
  triggerType,
132
132
  });
133
133
  if (json) {
@@ -45,7 +45,7 @@ describe('apps-automations-create', () => {
45
45
  name: 'nightly',
46
46
  platform: 'android',
47
47
  stack: 'macos-tahoe',
48
- triggerPattern: 'main',
48
+ triggerPattern: ['release/*', '!release/*-alpha'],
49
49
  triggerType: 'branch',
50
50
  type: 'release',
51
51
  };
@@ -58,7 +58,7 @@ describe('apps-automations-create', () => {
58
58
  buildType: 'release',
59
59
  name: 'nightly',
60
60
  platform: 'android',
61
- triggerPattern: 'main',
61
+ triggerPatterns: ['release/*', '!release/*-alpha'],
62
62
  triggerType: 'branch',
63
63
  })
64
64
  .matchHeader('Authorization', 'Bearer test-token')
@@ -6,6 +6,7 @@ import consola from 'consola';
6
6
  import { z } from 'zod';
7
7
  import { defineCommand, defineOptions } from 'zodline';
8
8
  const clearableValue = (value) => (value === '' ? null : value);
9
+ const clearableValues = (values) => values?.filter((value) => value !== '');
9
10
  export default defineCommand({
10
11
  description: 'Update an existing app automation.',
11
12
  options: defineOptions(z.object({
@@ -50,9 +51,9 @@ export default defineCommand({
50
51
  .optional()
51
52
  .describe('The build stack to use for the build process.'),
52
53
  triggerPattern: z
53
- .string()
54
+ .array(z.string())
54
55
  .optional()
55
- .describe('Only trigger for branches or tags matching this pattern. Pass an empty string to clear it.'),
56
+ .describe('Only trigger for branches or tags matching this pattern. Prefix with `!` to exclude. Can be specified multiple times. Pass an empty string to clear them.'),
56
57
  triggerType: z
57
58
  .enum(['branch', 'tag'], {
58
59
  message: 'Trigger type must be either `branch` or `tag`.',
@@ -60,8 +61,8 @@ export default defineCommand({
60
61
  .optional()
61
62
  .describe('What triggers the automation. Supported values are `branch` and `tag`.'),
62
63
  type: z
63
- .enum(['app-store', 'ad-hoc', 'debug', 'development', 'release', 'simulator'], {
64
- message: 'Build type must be one of `app-store`, `ad-hoc`, `debug`, `development`, `release`, or `simulator`.',
64
+ .enum(['app-store', 'ad-hoc', 'debug', 'development', 'enterprise', 'release', 'simulator'], {
65
+ message: 'Build type must be one of `app-store`, `ad-hoc`, `debug`, `development`, `enterprise`, `release`, or `simulator`.',
65
66
  })
66
67
  .optional()
67
68
  .describe('The type of build to create.'),
@@ -105,7 +106,7 @@ export default defineCommand({
105
106
  commitMessagePattern: clearableValue(options.commitMessagePattern),
106
107
  name: options.name,
107
108
  platform: options.platform,
108
- triggerPattern: clearableValue(options.triggerPattern),
109
+ triggerPatterns: clearableValues(options.triggerPattern),
109
110
  triggerType: options.triggerType,
110
111
  });
111
112
  if (json) {
@@ -42,13 +42,13 @@ describe('apps-automations-update', () => {
42
42
  automationId,
43
43
  configuration: 'Production',
44
44
  name: 'renamed',
45
- triggerPattern: 'release/*',
45
+ triggerPattern: ['v*', '!v*-*'],
46
46
  };
47
47
  const scope = nock(DEFAULT_API_BASE_URL)
48
48
  .patch(`/v1/apps/${appId}/automations/${automationId}`, {
49
49
  appConfigurationName: 'Production',
50
50
  name: 'renamed',
51
- triggerPattern: 'release/*',
51
+ triggerPatterns: ['v*', '!v*-*'],
52
52
  })
53
53
  .matchHeader('Authorization', 'Bearer test-token')
54
54
  .reply(204);
@@ -59,11 +59,11 @@ describe('apps-automations-update', () => {
59
59
  it('should clear a reference when an empty string is passed', async () => {
60
60
  const appId = 'app-123';
61
61
  const automationId = 'automation-456';
62
- const options = { appId, automationId, certificate: '', triggerPattern: '' };
62
+ const options = { appId, automationId, certificate: '', triggerPattern: [''] };
63
63
  const scope = nock(DEFAULT_API_BASE_URL)
64
64
  .patch(`/v1/apps/${appId}/automations/${automationId}`, {
65
65
  appCertificateName: null,
66
- triggerPattern: null,
66
+ triggerPatterns: [],
67
67
  })
68
68
  .matchHeader('Authorization', 'Bearer test-token')
69
69
  .reply(204);