Skip to content

Commit 650cf38

Browse files
Implemented variants entries bulk publish feature (#1515)
* Implemented variants entries bulk publish feature * Fixed PR comments * Added variant entries pagination * Implemented error handling * Upgraded axios package version * Removed secrets-scan workflow file
1 parent 7989b77 commit 650cf38

File tree

6 files changed

+153
-81
lines changed

6 files changed

+153
-81
lines changed

.github/workflows/secrets-scan.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

package-lock.json

Lines changed: 23 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/contentstack-bulk-publish/README.md

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ USAGE
3737
* [`csdx cm:bulk-publish:clear`](#csdx-cmbulk-publishclear)
3838
* [`csdx cm:bulk-publish:configure`](#csdx-cmbulk-publishconfigure)
3939
* [`csdx cm:bulk-publish:cross-publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--content-type <value>] [--locales <value>] [--source-env <value>] [--environments <value>] [--delivery-token <value>] [-c <value>] [-y] [--branch <value>] [--onlyAssets] [--onlyEntries]`](#csdx-cmbulk-publishcross-publish--a-value---retry-failed-value---bulk-publish-value---content-type-value---locales-value---source-env-value---environments-value---delivery-token-value--c-value--y---branch-value---onlyassets---onlyentries)
40-
* [`csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value)
40+
* [`csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value---entry-uid-value---include-variants)
4141
* [`csdx cm:entries:publish-modified [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-modified--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value)
4242
* [`csdx cm:entries:publish-non-localized-fields [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-non-localized-fields--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value--e-value--c-value--y---branch-value)
4343
* [`csdx cm:bulk-publish:revert`](#csdx-cmbulk-publishrevert)
4444
* [`csdx csdx cm:stacks:unpublish [-a <value>] [-e <value>] [-c <value>] [-y] [--locale <value>] [--branch <value>] [--retry-failed <value>] [--bulk-unpublish <value>] [--content-type <value>] [--delivery-token <value>] [--only-assets] [--only-entries]`](#csdx-csdx-cmstacksunpublish--a-value--e-value--c-value--y---locale-value---branch-value---retry-failed-value---bulk-unpublish-value---content-type-value---delivery-token-value---only-assets---only-entries)
4545
* [`csdx cm:entries:publish-only-unpublished [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-only-unpublished--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value)
46-
* [`csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value-1)
46+
* [`csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value---entry-uid-value---include-variants-1)
4747
* [`csdx cm:entries:publish-modified [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-modified--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value-1)
4848
* [`csdx cm:entries:publish-non-localized-fields [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-non-localized-fields--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value--e-value--c-value--y---branch-value-1)
4949
* [`csdx cm:entries:publish-only-unpublished [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`](#csdx-cmentriespublish-only-unpublished--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value-1)
@@ -499,15 +499,15 @@ EXAMPLES
499499

500500
_See code: [src/commands/cm/bulk-publish/cross-publish.js](https://github.com/contentstack/cli/blob/main/packages/contentstack-bulk-publish/src/commands/cm/bulk-publish/cross-publish.js)_
501501

502-
## `csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>]`
502+
## `csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]`
503503

504504
Publish entries from multiple contenttypes to multiple environments and locales
505505

506506
```
507507
USAGE
508508
$ csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>]
509509
[--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch
510-
<value>] [--delivery-token <value>] [--source-env <value>]
510+
<value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]
511511
512512
FLAGS
513513
-B, --branch=<value> [default: main] Specify the branch to fetch the content (by default the main branch is
@@ -524,6 +524,8 @@ FLAGS
524524
bulkpublish API will be used to publish the entries
525525
--content-types=<value>... The Contenttypes from which entries need to be published
526526
--delivery-token=<value> Delivery token for source environment
527+
--entry-uid=<value> Entry Uid for publish all associated variant entries.
528+
--include-variants Include Variants flag will publish all associated variant entries.
527529
--publish-all-content-types (optional) Publish all contenttypes (cannot be set when contentTypes flag is set)
528530
--retry-failed=<value> (optional) Retry failed entries from the logfile (overrides all other flags) This flag
529531
is used to retry publishing entries that failed to publish in a previous attempt. A log
@@ -582,6 +584,18 @@ EXAMPLES
582584
Using --stack-api-key
583585
584586
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN]
587+
588+
589+
590+
Using --include-variants
591+
592+
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] [--include-variants]
593+
594+
595+
596+
Using --entry-uid and --include-variants
597+
598+
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] --entry-uid [ENTRY UID] [--include-variants]
585599
```
586600

587601
## `csdx cm:entries:publish-modified [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--source-env <value>] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>]`
@@ -931,15 +945,15 @@ EXAMPLES
931945
$ csdx cm:entries:publish-only-unpublished -b --content-types [CONTENT TYPES] -e [ENVIRONMENTS] --locales LOCALE -a [MANAGEMENT TOKEN ALIAS] --stack-api-key [STACK API KEY] -source-env [SOURCE ENV]
932946
```
933947

934-
## `csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>]`
948+
## `csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]`
935949

936950
Publish entries from multiple contenttypes to multiple environments and locales
937951

938952
```
939953
USAGE
940954
$ csdx cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>]
941955
[--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch
942-
<value>] [--delivery-token <value>] [--source-env <value>]
956+
<value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]
943957
944958
FLAGS
945959
-B, --branch=<value> [default: main] Specify the branch to fetch the content (by default the main branch is
@@ -956,6 +970,8 @@ FLAGS
956970
bulkpublish API will be used to publish the entries
957971
--content-types=<value>... The Contenttypes from which entries need to be published
958972
--delivery-token=<value> Delivery token for source environment
973+
--entry-uid=<value> Entry Uid for publish all associated variant entries.
974+
--include-variants Include Variants flag will publish all associated variant entries.
959975
--publish-all-content-types (optional) Publish all contenttypes (cannot be set when contentTypes flag is set)
960976
--retry-failed=<value> (optional) Retry failed entries from the logfile (overrides all other flags) This flag
961977
is used to retry publishing entries that failed to publish in a previous attempt. A log
@@ -1014,6 +1030,18 @@ EXAMPLES
10141030
Using --stack-api-key
10151031
10161032
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN]
1033+
1034+
1035+
1036+
Using --include-variants
1037+
1038+
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] [--include-variants]
1039+
1040+
1041+
1042+
Using --entry-uid and --include-variants
1043+
1044+
$ csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] --entry-uid [ENTRY UID] [--include-variants]
10171045
```
10181046

10191047
_See code: [src/commands/cm/entries/publish.js](https://github.com/contentstack/cli/blob/main/packages/contentstack-bulk-publish/src/commands/cm/entries/publish.js)_

packages/contentstack-bulk-publish/src/commands/cm/entries/publish.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class PublishEntriesCommand extends Command {
2121
entriesFlags.publishAllContentTypes =
2222
entriesFlags['publish-all-content-types'] || entriesFlags.publishAllContentTypes || false;
2323
entriesFlags.apiVersion = entriesFlags['api-version'] || '3';
24+
entriesFlags.includeVariants = entriesFlags['include-variants'] || entriesFlags.includeVariants || false;
25+
entriesFlags.entryUid = entriesFlags['entry-uid'] || entriesFlags.entryUid;
2426
delete entriesFlags['api-version'];
2527
delete entriesFlags['retry-failed'];
2628
delete entriesFlags['content-types'];
@@ -57,6 +59,8 @@ class PublishEntriesCommand extends Command {
5759
} else {
5860
this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
5961
}
62+
updatedFlags.includeVariantsFlag = entriesFlags.includeVariants;
63+
updatedFlags.entry_uid = entriesFlags.entryUid;
6064
updatedFlags.bulkPublish = updatedFlags.bulkPublish !== 'false';
6165
stack = await getStack(config);
6266
}
@@ -244,6 +248,11 @@ PublishEntriesCommand.flags = {
244248
}),
245249
'delivery-token': flags.string({ description: 'Delivery token for source environment' }),
246250
'source-env': flags.string({ description: 'Source environment' }),
251+
'entry-uid': flags.string({ description: 'Entry Uid for publish all associated variant entries.' }),
252+
'include-variants': flags.boolean({
253+
default: false, // set the default value to false
254+
description: 'Include Variants flag will publish all associated variant entries.'
255+
}),
247256
};
248257

249258
PublishEntriesCommand.examples = [
@@ -267,11 +276,17 @@ PublishEntriesCommand.examples = [
267276
'',
268277
'Using --stack-api-key',
269278
'csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN]',
279+
'',
280+
'Using --include-variants',
281+
'csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] [--include-variants]',
282+
'',
283+
'Using --entry-uid and --include-variants',
284+
'csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN] --entry-uid [ENTRY UID] [--include-variants]',
270285
];
271286

272287
PublishEntriesCommand.aliases = ['cm:bulk-publish:entries'];
273288

274289
PublishEntriesCommand.usage =
275-
'cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>]';
290+
'cm:entries:publish [-a <value>] [--retry-failed <value>] [--bulk-publish <value>] [--publish-all-content-types] [--content-types <value>] [--locales <value>] [-e <value>] [-c <value>] [-y] [--branch <value>] [--delivery-token <value>] [--source-env <value>] [--entry-uid <value>] [--include-variants]';
276291

277292
module.exports = PublishEntriesCommand;

0 commit comments

Comments
 (0)