From 11160e5161902f574526447c8cc8c8b802819e06 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 15 Oct 2025 14:54:35 +0200 Subject: [PATCH 01/19] Bulk import --- assemblies/assembly-bulk-importing-from-github.adoc | 1 + ...re-integrating-bulk-import-with-orchestrator-workflows.adoc | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc diff --git a/assemblies/assembly-bulk-importing-from-github.adoc b/assemblies/assembly-bulk-importing-from-github.adoc index 69553ed273..bbdacc24e3 100644 --- a/assemblies/assembly-bulk-importing-from-github.adoc +++ b/assemblies/assembly-bulk-importing-from-github.adoc @@ -15,3 +15,4 @@ include::modules/importing-repositories/procedure-managing-the-imported-reposito include::modules/importing-repositories/procedure-understanding-bulk-import-audit-logs.adoc[leveloffset=+1] +include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc new file mode 100644 index 0000000000..1774d1dce3 --- /dev/null +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -0,0 +1,3 @@ +:_mod-docs-content-type: PROCEDURE + +[id="integrating-bulk-import-with-orchestrator-workflows"] From 67841cf9337926caacabc3adb74931a2a61e7d63 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 01:24:18 +0200 Subject: [PATCH 02/19] Bulk Import plugin --- .../assembly-bulk-importing-from-github.adoc | 4 +- ...ta-handoff-and-custom-workflow-design.adoc | 28 +++++++++ ...lk-import-with-orchestrator-workflows.adoc | 63 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc diff --git a/assemblies/assembly-bulk-importing-from-github.adoc b/assemblies/assembly-bulk-importing-from-github.adoc index bbdacc24e3..d4cd893658 100644 --- a/assemblies/assembly-bulk-importing-from-github.adoc +++ b/assemblies/assembly-bulk-importing-from-github.adoc @@ -15,4 +15,6 @@ include::modules/importing-repositories/procedure-managing-the-imported-reposito include::modules/importing-repositories/procedure-understanding-bulk-import-audit-logs.adoc[leveloffset=+1] -include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] \ No newline at end of file +include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] + +include::modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc new file mode 100644 index 0000000000..11f91723cc --- /dev/null +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -0,0 +1,28 @@ +:_mod-docs-content-type: PROCEDURE + +[id="full-data-handoff-and-custom-workflow-design"] + += Data handoff and custom workflow design + +When you configure the Bulk Import plugin by setting the importAPI field to 'scaffolder', the Bulk Import Backend ensures all necessary context is passed directly to the Orchestrator. + +Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. The payload includes, at minimum, the complete list of repository URLs and the user identity. ++ +[source,yaml] +---- +{ + "repositories": [ + "[https://github.com/my-org/repo-a](https://github.com/my-org/repo-a)", + "[https://github.com/my-org/repo-b](https://github.com/my-org/repo-b)", + "[https://github.com/my-org/repo-c](https://github.com/my-org/repo-c)" + ], + "userId": "user:default/janedoe", + // The 'userId' is critical for auditing, applying permission checks, and defining entity ownership within your custom workflow logic. +} +---- + +As an administrator, you can define the Orchestrator workflow and structure the workflow to do the following: + +* Consume the input: Accept the repositories array as primary input. +* Iterate and process: Loop through the list, executing the custom logic for example, creating the `catalog-info.yaml` if needed, then running compliance checks, then registering with the catalog. +* Manage lifecycle: The Orchestrator workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 1774d1dce3..65b9394ebf 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -1,3 +1,66 @@ :_mod-docs-content-type: PROCEDURE [id="integrating-bulk-import-with-orchestrator-workflows"] + += Setting up a custom scaffolder workflow for bulk import + +As an administrator, you can create a scaffolder template specifically for the Bulk Import plugin. You can provide the scaffolder template within the configuration of your application. + +You can perform the following tasks with this integration: + +* Import existing catalog entities +* Create pull requests for cleanup +* Call webhooks for external system integration + +The bulk import plugin allows you to execute a custom automation workflow of a Scaffolder template on multiple selected repositories. + +.Prerequisites + +* Create a Scaffolder template specifically designed for the Bulk Import function and provide the scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. + +.Procedure + +* Configure the following fields in your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates: + +** `importTemplate` +** `importAPI` +** `open-pull-requests` +** `scaffolder` + +you can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. +To configure the Bulk Import workflow: ++ +[source,yaml] +---- +bulkImport: + importTemplate: your-template-entity-reference-or-template-name + importAPI: 'scaffolder', 'orchestrator' +---- +where: + +`importTemplate:`:: +Enter your template entity reference or name of your Scaffolder template. + +`importAPI`:: +Set the API to 'orchestrator' to trigger the defined workflow for high-fidelity automation. This field defines the import workflow and currently supports two following options: + +* `open-pull-requests`: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. +* `scaffolder`: This workflow uses an import scenario defined in the scaffolder template. The import steps depend on the template's content, allowing for various scenarios. These can include importing existing catalog entities from a repository, creating pull requests, calling webhooks, and more. This method offers greater flexibility. +- Select this option to use the custom import scenario defined in your Scaffolder template. This method offers **greater flexibility** for complex scenarios, including importing existing catalog entities from a repository, creating pull requests, or calling webhooks. + + +[IMPORTANT] +==== +The Scaffolder template must be generic and not specific to a single repository if you want your custom Scaffolder template to run successfully for every repository in the bulk list. +==== + +For the {product-very-short} instance to use the scaffolder functionality, you must run it with the following environment variable enabled: ++ +[source,yaml] +---- +export NODE_OPTIONS=--no-node-snapshot +---- + +.Verification + +The Bulk Import plugin executes the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file From ea94d38abeaad88ad55fb279f5349eca30f3cf20 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 13:11:34 +0200 Subject: [PATCH 03/19] Bulk Import plugin --- ...ta-handoff-and-custom-workflow-design.adoc | 10 +++--- ...lk-import-with-orchestrator-workflows.adoc | 31 +++++++------------ 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc index 11f91723cc..761d59af4c 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -4,7 +4,7 @@ = Data handoff and custom workflow design -When you configure the Bulk Import plugin by setting the importAPI field to 'scaffolder', the Bulk Import Backend ensures all necessary context is passed directly to the Orchestrator. +When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Orchestrator. Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. The payload includes, at minimum, the complete list of repository URLs and the user identity. + @@ -23,6 +23,8 @@ Your control over input data:: The Orchestrator workflow receives the input data As an administrator, you can define the Orchestrator workflow and structure the workflow to do the following: -* Consume the input: Accept the repositories array as primary input. -* Iterate and process: Loop through the list, executing the custom logic for example, creating the `catalog-info.yaml` if needed, then running compliance checks, then registering with the catalog. -* Manage lifecycle: The Orchestrator workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file +Consume the input:: Accept the repositories array as primary input. + +Iterate and process:: Loop through the list, executing the custom logic for example, creating the `catalog-info.yaml` if needed, then running compliance checks, then registering with the catalog. + +Manage lifecycle:: The Orchestrator workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 65b9394ebf..718e2239a8 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -1,40 +1,34 @@ :_mod-docs-content-type: PROCEDURE [id="integrating-bulk-import-with-orchestrator-workflows"] - = Setting up a custom scaffolder workflow for bulk import As an administrator, you can create a scaffolder template specifically for the Bulk Import plugin. You can provide the scaffolder template within the configuration of your application. -You can perform the following tasks with this integration: +You can run the following tasks with this integration: * Import existing catalog entities * Create pull requests for cleanup * Call webhooks for external system integration -The bulk import plugin allows you to execute a custom automation workflow of a Scaffolder template on multiple selected repositories. +You can execute a custom automation workflow of a Scaffolder template on multiple selected repositories using the bulk import plugin. .Prerequisites -* Create a Scaffolder template specifically designed for the Bulk Import function and provide the scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. +* You created a Scaffolder template specifically designed for the Bulk Import function and provided the scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. .Procedure -* Configure the following fields in your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates: - -** `importTemplate` -** `importAPI` -** `open-pull-requests` -** `scaffolder` +* Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates. -you can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. +You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. To configure the Bulk Import workflow: + [source,yaml] ---- bulkImport: importTemplate: your-template-entity-reference-or-template-name - importAPI: 'scaffolder', 'orchestrator' + importAPI: 'scaffolder' ---- where: @@ -42,20 +36,19 @@ where: Enter your template entity reference or name of your Scaffolder template. `importAPI`:: -Set the API to 'orchestrator' to trigger the defined workflow for high-fidelity automation. This field defines the import workflow and currently supports two following options: - -* `open-pull-requests`: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. -* `scaffolder`: This workflow uses an import scenario defined in the scaffolder template. The import steps depend on the template's content, allowing for various scenarios. These can include importing existing catalog entities from a repository, creating pull requests, calling webhooks, and more. This method offers greater flexibility. -- Select this option to use the custom import scenario defined in your Scaffolder template. This method offers **greater flexibility** for complex scenarios, including importing existing catalog entities from a repository, creating pull requests, or calling webhooks. +Set the API to 'scaffolder' to trigger the defined workflow for high-fidelity automation. This field defines the import workflow and currently supports two following options: +`open-pull-requests`:: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. +`scaffolder`:: This workflow uses an import scenario defined in the scaffolder template. Select this option to use the custom import scenario defined in your Scaffolder template. ++ [IMPORTANT] ==== The Scaffolder template must be generic and not specific to a single repository if you want your custom Scaffolder template to run successfully for every repository in the bulk list. ==== For the {product-very-short} instance to use the scaffolder functionality, you must run it with the following environment variable enabled: -+ + [source,yaml] ---- export NODE_OPTIONS=--no-node-snapshot @@ -63,4 +56,4 @@ export NODE_OPTIONS=--no-node-snapshot .Verification -The Bulk Import plugin executes the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file +* The Bulk Import plugin executes the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file From b7ea60532bcf949f68862b819572ff4a4cffc83e Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 16:42:45 +0200 Subject: [PATCH 04/19] Update bulk import --- ...dure-data-handoff-and-custom-workflow-design.adoc | 6 +++--- ...ting-bulk-import-with-orchestrator-workflows.adoc | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc index 761d59af4c..35a2cf9b61 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -4,7 +4,7 @@ = Data handoff and custom workflow design -When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Orchestrator. +When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Scaffolder API. Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. The payload includes, at minimum, the complete list of repository URLs and the user identity. + @@ -21,10 +21,10 @@ Your control over input data:: The Orchestrator workflow receives the input data } ---- -As an administrator, you can define the Orchestrator workflow and structure the workflow to do the following: +As an administrator, you can define the Scaffolder template workflow and structure the workflow to do the following: Consume the input:: Accept the repositories array as primary input. Iterate and process:: Loop through the list, executing the custom logic for example, creating the `catalog-info.yaml` if needed, then running compliance checks, then registering with the catalog. -Manage lifecycle:: The Orchestrator workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file +Manage lifecycle:: The Scaffolder template workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 718e2239a8..761f895dcf 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -3,7 +3,7 @@ [id="integrating-bulk-import-with-orchestrator-workflows"] = Setting up a custom scaffolder workflow for bulk import -As an administrator, you can create a scaffolder template specifically for the Bulk Import plugin. You can provide the scaffolder template within the configuration of your application. +As an administrator, you can create a scaffolder template specifically for the Bulk Import plugin. You can provide the Scaffolder template within the configuration of your application. You can run the following tasks with this integration: @@ -15,7 +15,7 @@ You can execute a custom automation workflow of a Scaffolder template on multipl .Prerequisites -* You created a Scaffolder template specifically designed for the Bulk Import function and provided the scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. +* You created a Scaffolder template specifically designed for the Bulk Import function and provided the Scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. .Procedure @@ -28,26 +28,26 @@ To configure the Bulk Import workflow: ---- bulkImport: importTemplate: your-template-entity-reference-or-template-name - importAPI: 'scaffolder' + importAPI: `open-pull-requests` | `scaffolder`; ---- where: `importTemplate:`:: -Enter your template entity reference or name of your Scaffolder template. +Enter your Scaffolder template entity reference. `importAPI`:: Set the API to 'scaffolder' to trigger the defined workflow for high-fidelity automation. This field defines the import workflow and currently supports two following options: `open-pull-requests`:: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. -`scaffolder`:: This workflow uses an import scenario defined in the scaffolder template. Select this option to use the custom import scenario defined in your Scaffolder template. +`scaffolder`:: This workflow uses an import scenario defined in the Scaffolder template to create import jobs. Select this option to use the custom import scenario defined in your Scaffolder template. + [IMPORTANT] ==== The Scaffolder template must be generic and not specific to a single repository if you want your custom Scaffolder template to run successfully for every repository in the bulk list. ==== -For the {product-very-short} instance to use the scaffolder functionality, you must run it with the following environment variable enabled: +For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: [source,yaml] ---- From f6f19d48f5b3d1a974757a6a6066069cf021494f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 16:57:41 +0200 Subject: [PATCH 05/19] Update bulk import --- ...ating-bulk-import-with-orchestrator-workflows.adoc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 761f895dcf..d2b7f97368 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -11,6 +11,11 @@ You can run the following tasks with this integration: * Create pull requests for cleanup * Call webhooks for external system integration +[NOTE] +==== +This is not a full list of tasks. The actual Scaffolder tasks in your workflow depend on the actions defined in your template, and the import steps automatically adjust based on your template content when you create and run your workflow. +==== + You can execute a custom automation workflow of a Scaffolder template on multiple selected repositories using the bulk import plugin. .Prerequisites @@ -20,8 +25,9 @@ You can execute a custom automation workflow of a Scaffolder template on multipl .Procedure * Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates. - ++ You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. ++ To configure the Bulk Import workflow: + [source,yaml] @@ -30,6 +36,7 @@ bulkImport: importTemplate: your-template-entity-reference-or-template-name importAPI: `open-pull-requests` | `scaffolder`; ---- ++ where: `importTemplate:`:: @@ -47,7 +54,7 @@ Set the API to 'scaffolder' to trigger the defined workflow for high-fidelity au The Scaffolder template must be generic and not specific to a single repository if you want your custom Scaffolder template to run successfully for every repository in the bulk list. ==== -For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: +* For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: [source,yaml] ---- From 42269082ef927345b2c36557736cb04ee1f85f1c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 17:05:38 +0200 Subject: [PATCH 06/19] Update bulk import --- ...ure-data-handoff-and-custom-workflow-design.adoc | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc index 35a2cf9b61..cf93ac0849 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -7,19 +7,6 @@ When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Scaffolder API. Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. The payload includes, at minimum, the complete list of repository URLs and the user identity. -+ -[source,yaml] ----- -{ - "repositories": [ - "[https://github.com/my-org/repo-a](https://github.com/my-org/repo-a)", - "[https://github.com/my-org/repo-b](https://github.com/my-org/repo-b)", - "[https://github.com/my-org/repo-c](https://github.com/my-org/repo-c)" - ], - "userId": "user:default/janedoe", - // The 'userId' is critical for auditing, applying permission checks, and defining entity ownership within your custom workflow logic. -} ----- As an administrator, you can define the Scaffolder template workflow and structure the workflow to do the following: From 1d63097c32078acde6dbb634ef753701be8fb085 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 17:29:45 +0200 Subject: [PATCH 07/19] Update bulk import --- ...integrating-bulk-import-with-orchestrator-workflows.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index d2b7f97368..0fcfabb045 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -1,13 +1,13 @@ :_mod-docs-content-type: PROCEDURE [id="integrating-bulk-import-with-orchestrator-workflows"] -= Setting up a custom scaffolder workflow for bulk import += Setting up a custom Scaffolder workflow for Bulk Import -As an administrator, you can create a scaffolder template specifically for the Bulk Import plugin. You can provide the Scaffolder template within the configuration of your application. +As an administrator, you can create a Scaffolder template specifically for the Bulk Import plugin within the configuration of your application. You can run the following tasks with this integration: -* Import existing catalog entities +* Import existing catalog entities from a repository * Create pull requests for cleanup * Call webhooks for external system integration From fa8c0045bd40bd6caa56a153da84b2ff95f6f4e9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 16 Oct 2025 19:14:34 +0200 Subject: [PATCH 08/19] Add a new module --- .../assembly-bulk-importing-from-github.adoc | 2 + ...edure-bulk-import-scaffolder-template.adoc | 66 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc diff --git a/assemblies/assembly-bulk-importing-from-github.adoc b/assemblies/assembly-bulk-importing-from-github.adoc index d4cd893658..c6636ed414 100644 --- a/assemblies/assembly-bulk-importing-from-github.adoc +++ b/assemblies/assembly-bulk-importing-from-github.adoc @@ -15,6 +15,8 @@ include::modules/importing-repositories/procedure-managing-the-imported-reposito include::modules/importing-repositories/procedure-understanding-bulk-import-audit-logs.adoc[leveloffset=+1] +include::modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc[leveloffset=+1] + include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] include::modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc new file mode 100644 index 0000000000..1e0a2d8437 --- /dev/null +++ b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc @@ -0,0 +1,66 @@ +:_mod-docs-content-type: PROCEDURE + +[id="procedure-bulk-import-scaffolder-template"] += Understanding Bulk Import Scaffolder template input parameters + +You can use the Bulk Import plugin to run a Scaffolder template task with specified parameters. As an administrator, you must use these parameters within the template. + +The Bulk Import plugin analyzes Git repository information and provides the following parameters for the Scaffolder template task: + +`repoUrl`:: Normalized repository URL in the following format: ++ +[source,yaml] +---- + ${gitProviderHost}?owner=${owner}&repo=${repository-name} +---- ++ +For example, when you run the process, the plugin transforms `https://github.com/redhat-developer/rhdh-plugins` into `github.com?owner=redhat-developer&repo=rhdh-plugins`. + +`name`:: The repository name. ++ +For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `name` is `rhdh-plugins`. + +`organization`:: The repository owner, which can be a user nickname or organization name. ++ +For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `organization` is `redhat-developer`. + +`branchName`:: The proposed repository branch. By default, the proposed repository branch is `bulk-import-catalog-entity`. + +`targetBranchName`:: The default branch of the Git repository. + +`gitProviderHost`:: The Git provider host parsed from the repository URL. ++ +For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `gitProviderHost` is `github.com`. You can use this parameter to write `Git-provider-agnostic` templates. + +To use parameters in a Scaffolder template: +[source,yaml] +---- +parameters: + - title: Repository Details + required: + - repoUrl + - branchName + - targetBranchName + - name + - organization + properties: + repoUrl: + type: string + title: Repository URL (Backstage format) + description: `github.com?owner=Org&repo=repoName` | `gitlab.com?owner=Org&repo=repoName` + organization: + type: string + title: Owner of the Repository + name: + type: string + title: Name of the repository + branchName: + type: string + title: Branch to add the catalog entity to + targetBranchName: + type: string + title: Branch to target the PR/MR to + gitProviderHost: + type: string + title: Git provider host +---- \ No newline at end of file From 2ea82c09b9d99d86aab37da7e76a65ef45b4ee0f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 17 Oct 2025 16:58:15 +0200 Subject: [PATCH 09/19] Apply suggestions --- .../procedure-bulk-import-scaffolder-template.adoc | 6 +++--- .../procedure-data-handoff-and-custom-workflow-design.adoc | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc index 1e0a2d8437..d7bb9a6004 100644 --- a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc @@ -32,11 +32,11 @@ For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `organi + For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `gitProviderHost` is `github.com`. You can use this parameter to write `Git-provider-agnostic` templates. -To use parameters in a Scaffolder template: +To use these parameters in a Scaffolder template: [source,yaml] ---- parameters: - - title: Repository Details + - title: Repository details required: - repoUrl - branchName @@ -50,7 +50,7 @@ parameters: description: `github.com?owner=Org&repo=repoName` | `gitlab.com?owner=Org&repo=repoName` organization: type: string - title: Owner of the Repository + title: Owner of the repository name: type: string title: Name of the repository diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc index cf93ac0849..8d1bc05999 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -6,12 +6,12 @@ When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Scaffolder API. -Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. The payload includes, at minimum, the complete list of repository URLs and the user identity. +Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. For each repository in that list, the bulk import launches the scaffolder template once and passes the data for that single repository to the template run. As an administrator, you can define the Scaffolder template workflow and structure the workflow to do the following: -Consume the input:: Accept the repositories array as primary input. +Consume the input:: The Scaffolder template receives the repository data as template parameters for the current execution. -Iterate and process:: Loop through the list, executing the custom logic for example, creating the `catalog-info.yaml` if needed, then running compliance checks, then registering with the catalog. +Iterate and process:: The orchestrator handles iterating through the repository list and launches the template for each repository. Within a single template run, implement the custom logic for that single repository. For example, create the `catalog-info.yaml` if needed, run compliance checks, then register with the catalog. Manage lifecycle:: The Scaffolder template workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file From 8431a4fbf0f731f25a8b04c0bddf4ad2dcac516d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 17 Oct 2025 17:08:42 +0200 Subject: [PATCH 10/19] Apply suggestions --- .../procedure-bulk-import-scaffolder-template.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc index d7bb9a6004..c63c4b2f18 100644 --- a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc @@ -47,7 +47,7 @@ parameters: repoUrl: type: string title: Repository URL (Backstage format) - description: `github.com?owner=Org&repo=repoName` | `gitlab.com?owner=Org&repo=repoName` + description: github.com?owner=Org&repo=repoName | gitlab.com?owner=Org&repo=repoName organization: type: string title: Owner of the repository From 523f779ef71a7a133a3066409da1938b6076cb6d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 21 Oct 2025 14:41:04 +0200 Subject: [PATCH 11/19] Apply peers suggestions --- .../assembly-bulk-importing-from-github.adoc | 2 +- ...cept-bulk-import-scaffolder-template.adoc} | 10 ++++---- ...ta-handoff-and-custom-workflow-design.adoc | 10 ++++---- ...lk-import-with-orchestrator-workflows.adoc | 23 ++++++++----------- 4 files changed, 20 insertions(+), 25 deletions(-) rename modules/importing-repositories/{procedure-bulk-import-scaffolder-template.adoc => concept-bulk-import-scaffolder-template.adoc} (85%) diff --git a/assemblies/assembly-bulk-importing-from-github.adoc b/assemblies/assembly-bulk-importing-from-github.adoc index c6636ed414..4863224910 100644 --- a/assemblies/assembly-bulk-importing-from-github.adoc +++ b/assemblies/assembly-bulk-importing-from-github.adoc @@ -15,7 +15,7 @@ include::modules/importing-repositories/procedure-managing-the-imported-reposito include::modules/importing-repositories/procedure-understanding-bulk-import-audit-logs.adoc[leveloffset=+1] -include::modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc[leveloffset=+1] +include::modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc[leveloffset=+1] include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] diff --git a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc similarity index 85% rename from modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc rename to modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc index c63c4b2f18..46d1f0f7a0 100644 --- a/modules/importing-repositories/procedure-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc @@ -1,6 +1,6 @@ -:_mod-docs-content-type: PROCEDURE +:_mod-docs-content-type: CONCEPT -[id="procedure-bulk-import-scaffolder-template"] +[id="bulk-import-scaffolder-template"] = Understanding Bulk Import Scaffolder template input parameters You can use the Bulk Import plugin to run a Scaffolder template task with specified parameters. As an administrator, you must use these parameters within the template. @@ -18,11 +18,11 @@ For example, when you run the process, the plugin transforms `https://github.com `name`:: The repository name. + -For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `name` is `rhdh-plugins`. +For example, the `name` is `rhdh-plugins`. `organization`:: The repository owner, which can be a user nickname or organization name. + -For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `organization` is `redhat-developer`. +For example, the `organization` is `redhat-developer`. `branchName`:: The proposed repository branch. By default, the proposed repository branch is `bulk-import-catalog-entity`. @@ -32,7 +32,7 @@ For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `organi + For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `gitProviderHost` is `github.com`. You can use this parameter to write `Git-provider-agnostic` templates. -To use these parameters in a Scaffolder template: +Using these parameters in a Scaffolder template: [source,yaml] ---- parameters: diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc index 8d1bc05999..70bf37d950 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc @@ -4,14 +4,12 @@ = Data handoff and custom workflow design -When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend ensures all necessary context is passed directly to the Scaffolder API. - -Your control over input data:: The Orchestrator workflow receives the input data required to automate processing for every selected repository. For each repository in that list, the bulk import launches the scaffolder template once and passes the data for that single repository to the template run. +When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend passed all necessary context directly to the Scaffolder API. As an administrator, you can define the Scaffolder template workflow and structure the workflow to do the following: -Consume the input:: The Scaffolder template receives the repository data as template parameters for the current execution. +Define template parameters to consume input:: Structure the Scaffolder template to receive the repository data as template parameters for the current workflow run. The template must be generic, and not specific to a single repository, so that it can successfully run for every repository in the bulk list. -Iterate and process:: The orchestrator handles iterating through the repository list and launches the template for each repository. Within a single template run, implement the custom logic for that single repository. For example, create the `catalog-info.yaml` if needed, run compliance checks, then register with the catalog. +Automate processing for each repository:: Implement the custom logic needed for a single repository within the template. The Orchestrator iterates through the repository list, launching the template once for each repository and passes only the data for that single repository to the template run. This allows you to automate tasks like creating the `catalog-info.yaml`, running compliance checks, or registering the entity with the catalog. -Manage lifecycle:: The Scaffolder template workflow owns the entire import lifecycle for the repository list, providing a single point of management and traceability. \ No newline at end of file +Centralize import workflow management:: Use the Scaffolder template to define and manage the entire import lifecycle for the repository list, providing you with a single point of management and traceability for the bulk operation. This method offers greater flexibility in defining the import scenario. \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 0fcfabb045..a724d7854d 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -3,30 +3,27 @@ [id="integrating-bulk-import-with-orchestrator-workflows"] = Setting up a custom Scaffolder workflow for Bulk Import -As an administrator, you can create a Scaffolder template specifically for the Bulk Import plugin within the configuration of your application. +As an administrator, you can create a Scaffolder template for the Bulk Import plugin within the configuration of your application. -You can run the following tasks with this integration: +The Scaffolder workflow offers flexibility because the specific import steps are defined by your template content. -* Import existing catalog entities from a repository -* Create pull requests for cleanup -* Call webhooks for external system integration +You can define various custom tasks, including, but not limited to the following: -[NOTE] -==== -This is not a full list of tasks. The actual Scaffolder tasks in your workflow depend on the actions defined in your template, and the import steps automatically adjust based on your template content when you create and run your workflow. -==== +* Importing existing catalog entities from a repository +* Creating pull requests for cleanup +* Calling webhooks for external system integration -You can execute a custom automation workflow of a Scaffolder template on multiple selected repositories using the bulk import plugin. +You can run a custom automation workflow of a Scaffolder template on multiple selected repositories using the bulk import plugin. .Prerequisites -* You created a Scaffolder template specifically designed for the Bulk Import function and provided the Scaffolder template within the configuration of your application. This template is the core definition of your customized import scenario. +* You created a custom Scaffolder template for the Bulk Import plugin. .Procedure * Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates. + -You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. +Optional: You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. + To configure the Bulk Import workflow: + @@ -63,4 +60,4 @@ export NODE_OPTIONS=--no-node-snapshot .Verification -* The Bulk Import plugin executes the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file +* The Bulk Import plugin runs the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file From efa6a5355e333d17698354d4e3f540f5aa1b74a1 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 21 Oct 2025 17:20:32 +0200 Subject: [PATCH 12/19] Apply new suggestion --- .../concept-bulk-import-scaffolder-template.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc index 46d1f0f7a0..12207be71a 100644 --- a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc @@ -3,7 +3,7 @@ [id="bulk-import-scaffolder-template"] = Understanding Bulk Import Scaffolder template input parameters -You can use the Bulk Import plugin to run a Scaffolder template task with specified parameters. As an administrator, you must use these parameters within the template. +As an administrator, you can use the Bulk Import plugin to run a Scaffolder template task with specified parameters, which you must define within the template. The Bulk Import plugin analyzes Git repository information and provides the following parameters for the Scaffolder template task: From 8eb9423f84de3d1bd0d0a477265bbe0b030794b8 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 21 Oct 2025 18:45:42 +0200 Subject: [PATCH 13/19] Apply suggestions --- ...ure-integrating-bulk-import-with-orchestrator-workflows.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index a724d7854d..e5285e7696 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -3,7 +3,7 @@ [id="integrating-bulk-import-with-orchestrator-workflows"] = Setting up a custom Scaffolder workflow for Bulk Import -As an administrator, you can create a Scaffolder template for the Bulk Import plugin within the configuration of your application. +As an administrator, you can create a Scaffolder template that reflects the repository conventions of your organization and add it into the {product} catalog for use by the Bulk Import plugin. The Scaffolder workflow offers flexibility because the specific import steps are defined by your template content. From a0413dffc6d15a6a7d865cfecfb81091eea057b6 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 22 Oct 2025 14:44:10 +0200 Subject: [PATCH 14/19] Update suggestions --- .../assembly-bulk-importing-from-github.adoc | 2 +- ...ncept-bulk-import-scaffolder-template.adoc | 14 ++------- ...a-handoff-and-custom-workflow-design.adoc} | 8 ++--- ...lk-import-with-orchestrator-workflows.adoc | 30 ++++++++----------- 4 files changed, 20 insertions(+), 34 deletions(-) rename modules/importing-repositories/{procedure-data-handoff-and-custom-workflow-design.adoc => concept-data-handoff-and-custom-workflow-design.adoc} (64%) diff --git a/assemblies/assembly-bulk-importing-from-github.adoc b/assemblies/assembly-bulk-importing-from-github.adoc index 4863224910..9459bdefe2 100644 --- a/assemblies/assembly-bulk-importing-from-github.adoc +++ b/assemblies/assembly-bulk-importing-from-github.adoc @@ -19,4 +19,4 @@ include::modules/importing-repositories/concept-bulk-import-scaffolder-template. include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1] -include::modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1] \ No newline at end of file +include::modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc index 12207be71a..3bff30af41 100644 --- a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc @@ -1,7 +1,7 @@ :_mod-docs-content-type: CONCEPT [id="bulk-import-scaffolder-template"] -= Understanding Bulk Import Scaffolder template input parameters += Configure input parameters for Bulk Import Scaffolder template As an administrator, you can use the Bulk Import plugin to run a Scaffolder template task with specified parameters, which you must define within the template. @@ -13,26 +13,18 @@ The Bulk Import plugin analyzes Git repository information and provides the foll ---- ${gitProviderHost}?owner=${owner}&repo=${repository-name} ---- -+ -For example, when you run the process, the plugin transforms `https://github.com/redhat-developer/rhdh-plugins` into `github.com?owner=redhat-developer&repo=rhdh-plugins`. `name`:: The repository name. -+ -For example, the `name` is `rhdh-plugins`. `organization`:: The repository owner, which can be a user nickname or organization name. -+ -For example, the `organization` is `redhat-developer`. `branchName`:: The proposed repository branch. By default, the proposed repository branch is `bulk-import-catalog-entity`. `targetBranchName`:: The default branch of the Git repository. -`gitProviderHost`:: The Git provider host parsed from the repository URL. -+ -For example, for `https://github.com/redhat-developer/rhdh-plugins`, the `gitProviderHost` is `github.com`. You can use this parameter to write `Git-provider-agnostic` templates. +`gitProviderHost`:: The Git provider host parsed from the repository URL. You can use this parameter to write `Git-provider-agnostic` templates. -Using these parameters in a Scaffolder template: +Example of a Scaffolder template: [source,yaml] ---- parameters: diff --git a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc b/modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc similarity index 64% rename from modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc rename to modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc index 70bf37d950..da4c523878 100644 --- a/modules/importing-repositories/procedure-data-handoff-and-custom-workflow-design.adoc +++ b/modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc @@ -1,15 +1,13 @@ -:_mod-docs-content-type: PROCEDURE +:_mod-docs-content-type: CONCEPT [id="full-data-handoff-and-custom-workflow-design"] = Data handoff and custom workflow design -When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend passed all necessary context directly to the Scaffolder API. +When you configure the Bulk Import plugin by setting the importAPI field to `scaffolder`, the Bulk Import Backend passes all necessary context directly to the Scaffolder API. As an administrator, you can define the Scaffolder template workflow and structure the workflow to do the following: Define template parameters to consume input:: Structure the Scaffolder template to receive the repository data as template parameters for the current workflow run. The template must be generic, and not specific to a single repository, so that it can successfully run for every repository in the bulk list. -Automate processing for each repository:: Implement the custom logic needed for a single repository within the template. The Orchestrator iterates through the repository list, launching the template once for each repository and passes only the data for that single repository to the template run. This allows you to automate tasks like creating the `catalog-info.yaml`, running compliance checks, or registering the entity with the catalog. - -Centralize import workflow management:: Use the Scaffolder template to define and manage the entire import lifecycle for the repository list, providing you with a single point of management and traceability for the bulk operation. This method offers greater flexibility in defining the import scenario. \ No newline at end of file +Automate processing for each repository:: Implement the custom logic needed for a single repository within the template. The Orchestrator iterates through the repository list, launching the template once for each repository and passes only the data for that single repository to the template run. This allows you to automate tasks such as creating the `catalog-info.yaml`, running compliance checks, or registering the entity with the catalog. \ No newline at end of file diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index e5285e7696..1d6ab70a52 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -3,9 +3,7 @@ [id="integrating-bulk-import-with-orchestrator-workflows"] = Setting up a custom Scaffolder workflow for Bulk Import -As an administrator, you can create a Scaffolder template that reflects the repository conventions of your organization and add it into the {product} catalog for use by the Bulk Import plugin. - -The Scaffolder workflow offers flexibility because the specific import steps are defined by your template content. +As an administrator, you can create a custom Scaffolder template in line with the repository conventions of your organization and add the template into the {product} catalog for use by the Bulk Import plugin on multiple selected repositories. You can define various custom tasks, including, but not limited to the following: @@ -13,24 +11,27 @@ You can define various custom tasks, including, but not limited to the following * Creating pull requests for cleanup * Calling webhooks for external system integration -You can run a custom automation workflow of a Scaffolder template on multiple selected repositories using the bulk import plugin. - .Prerequisites * You created a custom Scaffolder template for the Bulk Import plugin. +* For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: ++ +[source,yaml] +---- +export NODE_OPTIONS=--no-node-snapshot +---- + .Procedure -* Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom templates. -+ -Optional: You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. +* Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom template. + To configure the Bulk Import workflow: + [source,yaml] ---- bulkImport: - importTemplate: your-template-entity-reference-or-template-name + importTemplate: importAPI: `open-pull-requests` | `scaffolder`; ---- + @@ -45,19 +46,14 @@ Set the API to 'scaffolder' to trigger the defined workflow for high-fidelity au `open-pull-requests`:: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. `scaffolder`:: This workflow uses an import scenario defined in the Scaffolder template to create import jobs. Select this option to use the custom import scenario defined in your Scaffolder template. + +Optional: You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. + [IMPORTANT] ==== The Scaffolder template must be generic and not specific to a single repository if you want your custom Scaffolder template to run successfully for every repository in the bulk list. ==== -* For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: - -[source,yaml] ----- -export NODE_OPTIONS=--no-node-snapshot ----- - .Verification -* The Bulk Import plugin runs the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint (the `createTaskImportJobs` method). \ No newline at end of file +* The Bulk Import plugin runs the custom Scaffolder template for the list of repositories using the `/task-imports` API endpoint. \ No newline at end of file From 2fc23b083a9fe41f048d66cba897032726c6fb16 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 22 Oct 2025 15:27:23 +0200 Subject: [PATCH 15/19] Update suggestions --- ...ure-integrating-bulk-import-with-orchestrator-workflows.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 1d6ab70a52..a38ce4f78f 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -46,7 +46,7 @@ Set the API to 'scaffolder' to trigger the defined workflow for high-fidelity au `open-pull-requests`:: This is the default import workflow, which includes the logic for creating pull requests for every selected repository. `scaffolder`:: This workflow uses an import scenario defined in the Scaffolder template to create import jobs. Select this option to use the custom import scenario defined in your Scaffolder template. - ++ Optional: You can direct the Bulk Import plugin to hand off the entire list of selected repositories to a custom Orchestrator workflow. + [IMPORTANT] From 71d73fc1c4a31ec6ba2b7d427bd97d2dbef7e613 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 23 Oct 2025 05:27:36 +0200 Subject: [PATCH 16/19] Apply suggestions --- ...e-integrating-bulk-import-with-orchestrator-workflows.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index a38ce4f78f..3b25d34c29 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -24,9 +24,7 @@ export NODE_OPTIONS=--no-node-snapshot .Procedure -* Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom template. -+ -To configure the Bulk Import workflow: +* Configure your {my-app-config-file} configuration to instruct the Bulk Import plugin to use your custom template as shown in the following example: + [source,yaml] ---- From 25b801676efa94bcb6e446863fa98a5ed51933a9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 23 Oct 2025 08:38:49 +0200 Subject: [PATCH 17/19] Apply suggestions --- .../concept-bulk-import-scaffolder-template.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc index 3bff30af41..42e7847ff8 100644 --- a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc @@ -39,7 +39,7 @@ parameters: repoUrl: type: string title: Repository URL (Backstage format) - description: github.com?owner=Org&repo=repoName | gitlab.com?owner=Org&repo=repoName + description: github.com?owner=Org&repo=repoName organization: type: string title: Owner of the repository From ae6d324a3351cc705f3d1aa24e369d13a020513a Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 23 Oct 2025 12:40:29 +0200 Subject: [PATCH 18/19] Apply suggestions --- .../concept-bulk-import-scaffolder-template.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc index 42e7847ff8..d9b3a0ccf0 100644 --- a/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc +++ b/modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc @@ -1,7 +1,7 @@ :_mod-docs-content-type: CONCEPT [id="bulk-import-scaffolder-template"] -= Configure input parameters for Bulk Import Scaffolder template += Input parameters for Bulk Import Scaffolder template As an administrator, you can use the Bulk Import plugin to run a Scaffolder template task with specified parameters, which you must define within the template. From 3d25c2ab7e31cbaa9a170ddc37c8c07c57ad3a48 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 23 Oct 2025 16:40:16 +0200 Subject: [PATCH 19/19] Apply suggestions --- ...ure-integrating-bulk-import-with-orchestrator-workflows.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc index 3b25d34c29..937594be4f 100644 --- a/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc +++ b/modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc @@ -15,7 +15,7 @@ You can define various custom tasks, including, but not limited to the following * You created a custom Scaffolder template for the Bulk Import plugin. -* For the {product-very-short} instance to use the Scaffolder functionality, you must run it with the following environment variable enabled: +* You have run your {product-very-short} instance with the following environment variable enabled to allow the use of the Scaffolder functionality: + [source,yaml] ----