|
| 1 | +:_mod-docs-content-type: PROCEDURE |
| 2 | + |
| 3 | +[id="proc-configuring-events-module-for-github"] |
| 4 | + |
| 5 | += Configuring Events Module for GitHub |
| 6 | + |
| 7 | +Learn how to configure Events Module for use with the {product-very-short} GitHub Discovery feature and GitHub organization data. |
| 8 | +This is a Developer Preview feature. |
| 9 | + |
| 10 | +[IMPORTANT] |
| 11 | +==== |
| 12 | +Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA. |
| 13 | +
|
| 14 | +For more information about the support scope of Red Hat Developer Preview features, see link:https://access.redhat.com/support/offerings/devpreview/[Developer Preview Support Scope]. |
| 15 | +==== |
| 16 | + |
| 17 | +.Prerequisites |
| 18 | +* You have added your GitHub integration credentials in the `{my-app-config-file}` file. |
| 19 | +* You have defined the `schedule.frequency` in the `{my-app-config-file}` file as longer time period, such as 24 hours. |
| 20 | +* For GitHub Discovery only: You have enabled {product-docs-link}/html-single/integrating_red_hat_developer_hub_with_github/index#enabling-github-repository-discovery[GitHub Discovery]. |
| 21 | +* For GitHub Organizational Data only: You have enabled {product-docs-link}/html-single/authentication_in_red_hat_developer_hub/index#enabling-user-authentication-with-github[Github Authentication with user ingestion]. |
| 22 | + |
| 23 | +.Procedure |
| 24 | +. Add the GitHub Events Module to your `dynamic-plugins.yaml` configuration file as follows: |
| 25 | ++ |
| 26 | +[source,yaml] |
| 27 | +---- |
| 28 | +data: |
| 29 | +dynamic-plugins.yaml: | |
| 30 | +includes: |
| 31 | +- dynamic-plugins.default.yaml |
| 32 | +plugins: |
| 33 | +- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-plugin-events-backend-module-github:bs_1.42.5__0.4.3!backstage-plugin-events-backend-module-github |
| 34 | +disabled: false |
| 35 | +---- |
| 36 | +. To create HTTP endpoints to receive events for the `github`, add the following to your `{my-app-config-file}` file: |
| 37 | ++ |
| 38 | +[source,yaml] |
| 39 | +---- |
| 40 | +events: |
| 41 | + http: |
| 42 | + topics: |
| 43 | + - github |
| 44 | + modules: |
| 45 | + github: |
| 46 | + webhookSecret: ${GITHUB_WEBHOOK_SECRET} |
| 47 | +---- |
| 48 | ++ |
| 49 | +[IMPORTANT] |
| 50 | +==== |
| 51 | +Secure your workflow by adding a webhook secret token to link:https://docs.github.com/en/webhooks/using-webhooks/validating-webhook-deliveries[validate webhook deliveries]. |
| 52 | +==== |
| 53 | +. Create a link:https://docs.github.com/en/webhooks/using-webhooks/creating-webhooks[GitHub webhook] with the following specifications: |
| 54 | +** *For Github Discovery Events*: push, repository |
| 55 | +** *For Github Organizational Data Events*: organization, team and membership |
| 56 | +** *Content Type*: application/json |
| 57 | +** *Payload URL*: https://<your_instance_name>/api/events/http/github |
| 58 | ++ |
| 59 | +[NOTE] |
| 60 | +==== |
| 61 | +*Payload URL* is the URL exposed after configuring the HTTP endpoint. |
| 62 | +==== |
| 63 | + |
| 64 | +.Verification |
| 65 | +* Check the log for an entry that confirms that http endpoint was set up successfully to receive events from the GitHub webhook. |
| 66 | ++ |
| 67 | +Example of a log of successfully set up http endpoint:: |
| 68 | ++ |
| 69 | +[source,code] |
| 70 | +---- |
| 71 | +{"level":"\u001b[32minfo\u001b[39m","message":"Registered /api/events/http/github to receive events","plugin":"events","service":"backstage","timestamp":"2025-11-03 02:19:12"} |
| 72 | +---- |
| 73 | +* For GitHub Discovery only: |
| 74 | +** Trigger a GitHub push event by adding, |
| 75 | +modifying or deleting the `catalog-info.yaml` file in the repository where you set up your webhook. |
| 76 | +A record of this event should appear in the pod logs of your {product-very-short} instance. |
| 77 | ++ |
| 78 | +Example of a log with changes to `catalog-info.yaml` file:: |
| 79 | ++ |
| 80 | +[source,code] |
| 81 | +---- |
| 82 | +{"level":"\u001b[32minfo\u001b[39m","message":"Processed Github push event: added 0 - removed 0 - modified 1","plugin":"catalog","service":"backstage","span_id":"47534b96c4afc654","target":"github-provider:providerId","timestamp":"2025-06-15 21:33:14","trace_flags":"01","trace_id":"ecc782deb86aed2027da0ae6b1999e5c"} |
| 83 | +---- |
| 84 | + |
| 85 | +* For GitHub Organizational Data only: |
| 86 | +** Newly added users and teams appear in the {product-very-short} catalog. |
| 87 | + |
| 88 | + |
0 commit comments