Skip to content

Conversation

kadel
Copy link
Member

@kadel kadel commented Sep 17, 2025

Description

This PR removes catalog-integrations.yaml and scaffolder-integrations.yaml from the catalog.
They were just a collection of package that are never used together.
Each package is already in the catalog as a separate entity.

Here is a small LLM generated script I used to that checks if all the packages in the integrations files have a corresponding individual plugin file.

# check-collections.js
const fs = require('fs');
const path = require('path');
const yaml = require('js-yaml');

const pluginsDir = path.resolve(__dirname, '../catalog-entities/marketplace/plugins');

function main() {
  const integrationsFileName = process.argv[2];
  if (!integrationsFileName) {
    console.error('Usage: node <script> <integrations-file-name>');
    process.exit(1);
  }

  try {
    const integrationsDoc = yaml.load(fs.readFileSync(integrationsFileName, 'utf8'));
    const integrationPackages = new Set(integrationsDoc.spec.packages);

    const individualPluginDetails = new Map();
    const allPluginFiles = fs.readdirSync(pluginsDir).filter(file => file.endsWith('.yaml') && file !== integrationsFileName);

    for (const file of allPluginFiles) {
      const filePath = path.join(pluginsDir, file);
      const fileContent = fs.readFileSync(filePath, 'utf8');
      const doc = yaml.load(fileContent);

      if (doc && doc.kind === 'Plugin' && doc.spec && Array.isArray(doc.spec.packages) && doc.spec.packages.length === 1) {
        const packageName = doc.spec.packages[0];
        individualPluginDetails.set(packageName, {
          name: doc.metadata.name,
          title: doc.metadata.title,
        });
      }
    }

    const missingPlugins = [];
    for (const pkg of integrationPackages) {
      if (!individualPluginDetails.has(pkg)) {
        missingPlugins.push(pkg);
      }
    }

    console.log('--- Individual Plugin Details ---');
    individualPluginDetails.forEach((details, pkg) => {
      console.log(`Package: ${pkg}`);
      console.log(`  Name: ${details.name}`);
      console.log(`  Title: ${details.title}`);
    });
    console.log('---------------------------------');

    if (missingPlugins.length > 0) {
      console.error(`\nError: The following packages from ${integrationsFileName} do not have a corresponding individual plugin file:`);
      missingPlugins.forEach(p => console.error(`- ${p}`));
      process.exit(1);
    }

    console.log(`\nAll packages in ${integrationsFileName} have a corresponding individual plugin file.`);
    process.exit(0);

  } catch (error) {
    console.error('An error occurred:', error);
    process.exit(1);
  }
}

main();
▶ node check-collections.js catalog-entities/marketplace/plugins/catalog-integrations.yaml
--- Individual Plugin Details ---
Package: backstage-community-plugin-3scale-backend
  Name: 3scale
  Title: APIs with 3scale
Package: backstage-community-plugin-analytics-provider-segment
  Name: analytics-provider-segment
  Title: Segment Analytics Module
Package: roadiehq-scaffolder-backend-argocd
  Name: roadiehq-scaffolder-backend-argocd
  Title: Argo CD Software Template Actions
Package: backstage-community-plugin-acr
  Name: azure-container-registry
  Title: Azure Container Registry
Package: parfuemerie-douglas-scaffolder-backend-module-azure-repositorie
  Name: azure-repositories
  Title: Azure Repository Software Template Actions
Package: backstage-plugin-scaffolder-backend-module-azure
  Name: azure-scaffolder-actions
  Title: Azure Software Template Actions
Package: backstage-community-plugin-quay
  Name: backstage-community-plugin-quay
  Title: Container Image Registry for Quay
Package: backstage-plugin-catalog-backend-module-bitbucket-cloud
  Name: bitbucket-cloud-catalog-integration
  Title: Bitbucket Cloud Discovery
Package: backstage-plugin-scaffolder-backend-module-bitbucket-cloud
  Name: bitbucket-cloud-scaffolder-actions
  Title: Bitbucket Cloud Software Template Actions
Package: backstage-plugin-catalog-backend-module-bitbucket-server
  Name: bitbucket-server-catalog-integration
  Title: Bitbucket Server Discovery
Package: backstage-plugin-scaffolder-backend-module-bitbucket-server
  Name: bitbucket-server-scaffolder-actions
  Title: Bitbucket Server Software Template Actions
Package: backstage-plugin-techdocs-module-addons-contrib
  Name: contrib-techdocs-addons
  Title: Contrib TechDocs add-ons
Package: roadiehq-backstage-plugin-datadog
  Name: datadog
  Title: Datadog
Package: backstage-community-plugin-dynatrace
  Name: dynatrace-community
  Title: Dynatrace For Managed
Package: backstage-plugin-scaffolder-backend-module-gerrit
  Name: gerrit-scaffolder-actions
  Title: Gerrit Software Template Actions
Package: [object Object]
  Name: github-actions
  Title: GitHub Actions
Package: backstage-plugin-catalog-backend-module-github
  Name: backstage-plugin-catalog-backend-module-github
  Title: GitHub Software Catalog Integration
Package: roadiehq-backstage-plugin-github-insights
  Name: github-insights
  Title: GitHub Insights
Package: backstage-community-plugin-github-issues
  Name: github-issues
  Title: GitHub Issues
Package: backstage-plugin-catalog-backend-module-github-org
  Name: backstage-plugin-catalog-backend-module-github-org
  Title: GitHub Org Software Catalog Integration
Package: roadiehq-backstage-plugin-github-pull-requests
  Name: github-pull-requests
  Title: GitHub Pull Requests
Package: backstage-plugin-scaffolder-backend-module-github
  Name: github-scaffolder-actions
  Title: GitHub Software Template Actions
Package: backstage-plugin-catalog-backend-module-gitlab
  Name: gitlab-catalog-integration
  Title: GitLab Catalog Integration
Package: backstage-plugin-catalog-backend-module-gitlab-org
  Name: gitlab-org-catalog-integration
  Title: GitLab Org Catalog Integration
Package: backstage-plugin-scaffolder-backend-module-gitlab
  Name: gitlab-scaffolder-actions
  Title: GitLab Software Template Actions
Package: red-hat-developer-hub-backstage-plugin-global-floating-action-b
  Name: global-floating-action-button
  Title: Global Floating Action Button
Package: red-hat-developer-hub-backstage-plugin-global-header
  Name: global-header
  Title: Global Header
Package: red-hat-developer-hub-backstage-plugin-dynamic-home-page
  Name: home-page
  Title: Dynamic Home Page
Package: roadiehq-scaffolder-backend-module-http-request
  Name: http-request-scaffolder-action
  Title: HTTP Request Software Template Action
Package: apic-backstage
  Name: apic-backstage
  Title: API Connect Backstage Plugin
Package: backstage-community-plugin-jfrog-artifactory
  Name: jfrog-artifactory
  Title: JFrog Artifactory
Package: roadiehq-backstage-plugin-jira
  Name: jira
  Title: Jira
Package: backstage-community-plugin-catalog-backend-module-keycloak
  Name: keycloak-catalog-integration
  Title: Keycloak Catalog Integration
Package: backstage-plugin-kubernetes-backend
  Name: kubernetes-backend
  Title: Kubernetes Backend
Package: backstage-community-plugin-scaffolder-backend-module-kubernetes
  Name: kubernetes-scaffolder-actions
  Title: Kubernetes Software Template Actions
Package: backstage-plugin-kubernetes
  Name: kubernetes
  Title: Kubernetes
Package: backstage-plugin-catalog-backend-module-ldap
  Name: ldap-catalog-integration
  Title: LDAP Catalog Integration
Package: backstage-community-plugin-lighthouse
  Name: lighthouse
  Title: LightHouse
Package: backstage-plugin-catalog-backend-module-msgraph
  Name: microsoft-graph-catalog-integration
  Title: Catalog Backend Module for Microsoft Graph
Package: backstage-community-plugin-nexus-repository-manager
  Name: nexus-repository-manager
  Title: Nexus Repository Manager
Package: backstage-plugin-notifications-backend-module-email
  Name: notifications-email
  Title: Notifications Email Processor
Package: redhat-backstage-plugin-scaffolder-backend-module-orchestrator
  Name: orchestrator-scaffolder-actions
  Title: Orchestrator Scaffolder Actions For Red Hat Developer Hub
Package: backstage-community-plugin-catalog-backend-module-pingidentity
  Name: pingidentity
  Title: PingIdentity
Package: backstage-community-plugin-scaffolder-backend-module-quay
  Name: quay-scaffolder-actions
  Title: Quay Software Template Actions
Package: rhdh-backstage-plugin-quickstart
  Name: quickstart
  Title: Quickstart
Package: backstage-community-plugin-rbac
  Name: rbac
  Title: Role Based Access Control [RBAC]
Package: backstage-community-plugin-redhat-argocd
  Name: redhat-argocd
  Title: Red Hat Argo CD
Package: backstage-community-plugin-scaffolder-backend-module-regex
  Name: regex-scaffolder-actions
  Title: Regex Software Template Action
Package: roadiehq-backstage-plugin-argo-cd-backend
  Name: roadie-argocd
  Title: Roadie Argo CD
Package: roadiehq-scaffolder-backend-module-utils
  Name: roadie-scaffolder-util-actions
  Title: Software Template Utility Actions
Package: backstage-community-plugin-catalog-backend-module-scaffolder-re
  Name: scaffolder-relation-processor-catalog-integration
  Title: Scaffolder Relation Processor Catalog Integration
Package: roadiehq-backstage-plugin-security-insights
  Name: security-insights
  Title: Security Insights
Package: backstage-community-plugin-scaffolder-backend-module-servicenow
  Name: servicenow-scaffolder-actions
  Title: ServiceNow Software Template Actions
Package: backstage-plugin-signals-backend
  Name: signals-backend
  Title: Signals Backend Plugin
Package: backstage-community-plugin-scaffolder-backend-module-sonarqube
  Name: sonarqube-scaffolder-actions
  Title: SonarQube Software Template Actions
---------------------------------

All packages in catalog-entities/marketplace/plugins/catalog-integrations.yaml have a corresponding individual plugin file.
▶ node node check-collections.js  catalog-entities/marketplace/plugins/scaffolder-integrations.yaml 
--- Individual Plugin Details ---
Package: backstage-community-plugin-3scale-backend
  Name: 3scale
  Title: APIs with 3scale
Package: backstage-community-plugin-analytics-provider-segment
  Name: analytics-provider-segment
  Title: Segment Analytics Module
Package: roadiehq-scaffolder-backend-argocd
  Name: roadiehq-scaffolder-backend-argocd
  Title: Argo CD Software Template Actions
Package: backstage-community-plugin-acr
  Name: azure-container-registry
  Title: Azure Container Registry
Package: parfuemerie-douglas-scaffolder-backend-module-azure-repositorie
  Name: azure-repositories
  Title: Azure Repository Software Template Actions
Package: backstage-plugin-scaffolder-backend-module-azure
  Name: azure-scaffolder-actions
  Title: Azure Software Template Actions
Package: backstage-community-plugin-quay
  Name: backstage-community-plugin-quay
  Title: Container Image Registry for Quay
Package: backstage-plugin-catalog-backend-module-bitbucket-cloud
  Name: bitbucket-cloud-catalog-integration
  Title: Bitbucket Cloud Discovery
Package: backstage-plugin-scaffolder-backend-module-bitbucket-cloud
  Name: bitbucket-cloud-scaffolder-actions
  Title: Bitbucket Cloud Software Template Actions
Package: backstage-plugin-catalog-backend-module-bitbucket-server
  Name: bitbucket-server-catalog-integration
  Title: Bitbucket Server Discovery
Package: backstage-plugin-scaffolder-backend-module-bitbucket-server
  Name: bitbucket-server-scaffolder-actions
  Title: Bitbucket Server Software Template Actions
Package: backstage-plugin-techdocs-module-addons-contrib
  Name: contrib-techdocs-addons
  Title: Contrib TechDocs add-ons
Package: roadiehq-backstage-plugin-datadog
  Name: datadog
  Title: Datadog
Package: backstage-community-plugin-dynatrace
  Name: dynatrace-community
  Title: Dynatrace For Managed
Package: backstage-plugin-scaffolder-backend-module-gerrit
  Name: gerrit-scaffolder-actions
  Title: Gerrit Software Template Actions
Package: [object Object]
  Name: github-actions
  Title: GitHub Actions
Package: backstage-plugin-catalog-backend-module-github
  Name: backstage-plugin-catalog-backend-module-github
  Title: GitHub Software Catalog Integration
Package: roadiehq-backstage-plugin-github-insights
  Name: github-insights
  Title: GitHub Insights
Package: backstage-community-plugin-github-issues
  Name: github-issues
  Title: GitHub Issues
Package: backstage-plugin-catalog-backend-module-github-org
  Name: backstage-plugin-catalog-backend-module-github-org
  Title: GitHub Org Software Catalog Integration
Package: roadiehq-backstage-plugin-github-pull-requests
  Name: github-pull-requests
  Title: GitHub Pull Requests
Package: backstage-plugin-scaffolder-backend-module-github
  Name: github-scaffolder-actions
  Title: GitHub Software Template Actions
Package: backstage-plugin-catalog-backend-module-gitlab
  Name: gitlab-catalog-integration
  Title: GitLab Catalog Integration
Package: backstage-plugin-catalog-backend-module-gitlab-org
  Name: gitlab-org-catalog-integration
  Title: GitLab Org Catalog Integration
Package: backstage-plugin-scaffolder-backend-module-gitlab
  Name: gitlab-scaffolder-actions
  Title: GitLab Software Template Actions
Package: red-hat-developer-hub-backstage-plugin-global-floating-action-b
  Name: global-floating-action-button
  Title: Global Floating Action Button
Package: red-hat-developer-hub-backstage-plugin-global-header
  Name: global-header
  Title: Global Header
Package: red-hat-developer-hub-backstage-plugin-dynamic-home-page
  Name: home-page
  Title: Dynamic Home Page
Package: roadiehq-scaffolder-backend-module-http-request
  Name: http-request-scaffolder-action
  Title: HTTP Request Software Template Action
Package: apic-backstage
  Name: apic-backstage
  Title: API Connect Backstage Plugin
Package: backstage-community-plugin-jfrog-artifactory
  Name: jfrog-artifactory
  Title: JFrog Artifactory
Package: roadiehq-backstage-plugin-jira
  Name: jira
  Title: Jira
Package: backstage-community-plugin-catalog-backend-module-keycloak
  Name: keycloak-catalog-integration
  Title: Keycloak Catalog Integration
Package: backstage-plugin-kubernetes-backend
  Name: kubernetes-backend
  Title: Kubernetes Backend
Package: backstage-community-plugin-scaffolder-backend-module-kubernetes
  Name: kubernetes-scaffolder-actions
  Title: Kubernetes Software Template Actions
Package: backstage-plugin-kubernetes
  Name: kubernetes
  Title: Kubernetes
Package: backstage-plugin-catalog-backend-module-ldap
  Name: ldap-catalog-integration
  Title: LDAP Catalog Integration
Package: backstage-community-plugin-lighthouse
  Name: lighthouse
  Title: LightHouse
Package: backstage-plugin-catalog-backend-module-msgraph
  Name: microsoft-graph-catalog-integration
  Title: Catalog Backend Module for Microsoft Graph
Package: backstage-community-plugin-nexus-repository-manager
  Name: nexus-repository-manager
  Title: Nexus Repository Manager
Package: backstage-plugin-notifications-backend-module-email
  Name: notifications-email
  Title: Notifications Email Processor
Package: redhat-backstage-plugin-scaffolder-backend-module-orchestrator
  Name: orchestrator-scaffolder-actions
  Title: Orchestrator Scaffolder Actions For Red Hat Developer Hub
Package: backstage-community-plugin-catalog-backend-module-pingidentity
  Name: pingidentity
  Title: PingIdentity
Package: backstage-community-plugin-scaffolder-backend-module-quay
  Name: quay-scaffolder-actions
  Title: Quay Software Template Actions
Package: rhdh-backstage-plugin-quickstart
  Name: quickstart
  Title: Quickstart
Package: backstage-community-plugin-rbac
  Name: rbac
  Title: Role Based Access Control [RBAC]
Package: backstage-community-plugin-redhat-argocd
  Name: redhat-argocd
  Title: Red Hat Argo CD
Package: backstage-community-plugin-scaffolder-backend-module-regex
  Name: regex-scaffolder-actions
  Title: Regex Software Template Action
Package: roadiehq-backstage-plugin-argo-cd-backend
  Name: roadie-argocd
  Title: Roadie Argo CD
Package: roadiehq-scaffolder-backend-module-utils
  Name: roadie-scaffolder-util-actions
  Title: Software Template Utility Actions
Package: backstage-community-plugin-catalog-backend-module-scaffolder-re
  Name: scaffolder-relation-processor-catalog-integration
  Title: Scaffolder Relation Processor Catalog Integration
Package: roadiehq-backstage-plugin-security-insights
  Name: security-insights
  Title: Security Insights
Package: backstage-community-plugin-scaffolder-backend-module-servicenow
  Name: servicenow-scaffolder-actions
  Title: ServiceNow Software Template Actions
Package: backstage-plugin-signals-backend
  Name: signals-backend
  Title: Signals Backend Plugin
Package: backstage-community-plugin-scaffolder-backend-module-sonarqube
  Name: sonarqube-scaffolder-actions
  Title: SonarQube Software Template Actions
---------------------------------

All packages in catalog-entities/marketplace/plugins/scaffolder-integrations.yaml have a corresponding individual plugin file.

Which issue(s) does this PR fix

  • Fixes #?

PR acceptance criteria

Please make sure that the following steps are complete:

  • GitHub Actions are completed and successful
  • Unit Tests are updated and passing
  • E2E Tests are updated and passing
  • Documentation is updated if necessary (requirement for new features)
  • Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

Copy link

openshift-ci bot commented Sep 17, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign davidfestal for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Member

@dzemanov dzemanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@kadel
Copy link
Member Author

kadel commented Sep 18, 2025

Can you please also remove the files from here: https://github.com/redhat-developer/rhdh/blob/main/catalog-entities/marketplace/plugins/all.yaml

sure, will remove it

Copy link
Contributor

Copy link

openshift-ci bot commented Sep 18, 2025

@kadel: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-tests 72bf88a link true /test e2e-tests

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants