Website: https://github.com/actions
Note
Backstage UI (BUI) is now required for the GitHub Actions plugin to function, BUI has been included as part of Backstage since 1.41.0 which means you're very likely to already have it installed. The BUI documentation has details on installation if needed and the Backstage User Interface documentation has details on creating a custom BUI theme.
- GitHub Actions Plugin
View all workflow runs in a comprehensive table format showing status, branch, commit information, and timing details for easy monitoring of your CI/CD pipelines.
Alternative card-based layout for workflow runs with branch selection dropdown, providing a more visual and compact way to monitor your builds across different branches.
Quick summary view of the most recent workflow runs with status indicators, perfect for at-a-glance monitoring of your latest builds.
Focused view displaying the latest builds specifically from your main branch, helping you track the health of your primary development branch.
Summary card showing the status and details of the most recent build on the main branch for quick health checks.
Detailed overview of workflow runs with filtering and search capabilities, showing comprehensive information about each run including workflow name, status, branch, commit message, and execution time.
Drill down into individual workflow runs to see all jobs, their status, and execution duration, making it easy to identify which jobs succeeded or failed.
View detailed logs for each step within a job, including timestamps and output, helping you debug failures and understand execution flow.
Expanded view of complete job logs with all steps and their detailed output for thorough investigation and troubleshooting.
Create an OAuth App in your GitHub organization, setting the callback URL to:
http://localhost:7007/api/auth/github/handler/frame
Replacing localhost:7007 with the base URL of your backstage backend instance.
Note: This setup can also be completed with a personal GitHub account.
Keep in mind that using a personal account versus an organization account will affect which repositories the app can access.
-
Take the Client ID and Client Secret from the newly created app's settings page and you can do either:
- Put them into
AUTH_GITHUB_CLIENT_IDandAUTH_GITHUB_CLIENT_SECRETenvironment variables. - Add them to the app-config like below:
auth: providers: github: development: clientId: ${AUTH_GITHUB_CLIENT_ID} clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
- Put them into
-
Annotate your component with a correct GitHub Actions repository and owner:
The annotation key is
github.com/project-slug.Example:
apiVersion: backstage.io/v1alpha1 kind: Component metadata: name: backstage description: backstage.io annotations: github.com/project-slug: 'backstage/backstage' spec: type: website lifecycle: production owner: user:guest
- Install the plugin dependency in your Backstage app package:
# From your Backstage root directory
yarn --cwd packages/app add @backstage-community/plugin-github-actionsNote: If you are using GitHub auth to sign in, you may already have the GitHub provider, if it is not the case, install it by running:
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-github-providerAnd add the following dependency to your backend index file:
backend.add(import('@backstage/plugin-auth-backend-module-github-provider'));
- Add to the app
EntityPagecomponent:
// In packages/app/src/components/catalog/EntityPage.tsx
import {
EntityGithubActionsContent,
isGithubActionsAvailable,
} from '@backstage-community/plugin-github-actions';
// You can add the tab to any number of pages, the service page is shown as an
// example here
const serviceEntityPage = (
<EntityLayout>
{/* other tabs... */}
<EntityLayout.Route path="/github-actions" title="GitHub Actions" if={isGithubActionsAvailable}>
<EntityGithubActionsContent />
</EntityLayout.Route>- Run the app with
yarn startand the backend withyarn start-backend. Then navigate to/github-actions/under any entity.
Follow this section if you are using Backstage's new frontend system.
Import githubActionsPlugin in your App.tsx and add it to your app's features array:
import githubActionsPlugin from '@backstage-community/plugin-github-actions/alpha';
// ...
export const app = createApp({
features: [
// ...
githubActionsPlugin,
// ...
],
});The plugin will try to use backstage.io/source-location or backstage.io/managed-by-location
annotations to figure out the location of the source code.
- Add the
hostandapiBaseUrlto yourapp-config.yaml
# app-config.yaml
integrations:
github:
- host: 'your-github-host.com'
apiBaseUrl: 'https://api.your-github-host.com'- List workflow runs for a project
- Dive into one run to see a job steps
- Retry runs
- Pagination for runs
- There is a limit of 100 apps for one OAuth client/token pair
Github Workflow Runs optional UI to show in Card view instead of table, with branch selection option
// You can add the tab to any number of pages, the service page is shown as an
// example given here
const serviceEntityPage = (
<EntityLayout>
{/* other tabs... */}
<EntityLayout.Route path="/github-actions" title="GitHub Actions">
<EntityGithubActionsContent view='cards' />
</EntityLayout.Route>








