Uploaded image for project: 'Red Hat Internal Developer Platform'
  1. Red Hat Internal Developer Platform
  2. RHIDP-2727

GitHub issues plugin supports multiple GitHub integration hosts

Prepare for Y ReleasePrepare for Z ReleaseRemove QuarterXMLWordPrintable

    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide
      Previously, the GitHub issues plugin defaulted to using the first GitHub integration it detected for all components. This behavior made it incompatible with setups involving multiple GitHub integration hosts.

      Now, GitHub issues plugin supports multiple GitHub integration hosts. It uses the well-known entity slug annotation `backstage.io/source-location` or `backstage.io/managed-by-location` to determine the appropriate GitHub integration for a component. If no integration matches the slug, the first GitHub integration is selected, maintaining the previous behavior.
      Show
      Previously, the GitHub issues plugin defaulted to using the first GitHub integration it detected for all components. This behavior made it incompatible with setups involving multiple GitHub integration hosts. Now, GitHub issues plugin supports multiple GitHub integration hosts. It uses the well-known entity slug annotation `backstage.io/source-location` or `backstage.io/managed-by-location` to determine the appropriate GitHub integration for a component. If no integration matches the slug, the first GitHub integration is selected, maintaining the previous behavior.
    • Bug Fix
    • Done
    • RHDH Plugins 3262, RHDH Plugins 3263, RHDH Plugins 3264, RHDH Plugins 3265, RHDH Plugins 3266
    • Moderate

      Upstream Issue: https://github.com/backstage/community-plugins/issues/550

      Description of problem:

      The github-issues plugin (packaged as a dynamic plugin in RHDH) grabs the first github integrations it finds for all components (even ones that don't use those hosts). This prevents this plugin from being properly used when multiple github integration hosts are present.

      Prerequisites (if any, like setup, operators/versions):

      N/A

      Steps to Reproduce

      1. Create a github repo with issues and a github app with permissions to view issues on that repository (make it on github.com)
      2. Install the github issues plugin
      3. Add at least 2 different github hosts in the github integrations (put the github.com host as the 2nd integration in the list)

      integrations: 
        github: 
          - host: github.company.com
            apiBaseUrl: https://github.company.com/api/v3
          - host: github.com
            apps: 

      4. Ingest a component with a github slug pointing to the newly created github repo
      5. Navigate to the tab containing the issues component
      6. Observe error as it tries to query the github.company.com host instead of the expected github.com host

      Actual results:

      Grabs the very first github integration it finds, uses it and causes the issue fetch to fail. This prevents the use of this plugin when multiple github integrations for different github instances are configured. Only the first github instance would be queried from for all components using this plugin

      Expected results:

      It should grab the github integration corresponding to the correct host of the component with the github slug annotation. Perhaps a more verbose annotation indicating the host of the github instance can help with this?

      Reproducibility (Always/Intermittent/Only Once):

      Always

      Build Details:

      RHDH Version: 1.3.0
      Backstage Version: 1.26.5
      Last Commit: repo @ 2024-05-10T14:59:23Z

      Tested locally on this commit of the backstage-showcase: https://github.com/janus-idp/backstage-showcase/tree/ec08d99d979d6e2570ab8aecf7e3edcee6489582

      Additional info (Such as Logs, Screenshots, etc):

              rh-ee-dzemanov Dominika Zemanovicova
              rh-ee-frkong Frank Kong (Inactive)
              RHIDP - Plugins
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: