Files
backstage/plugins/github-actions/README.md
T
Lillian Bose 08d7e4676a feat: GH Workflow Runs as Card View (#20939)
* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* fix dagda1 github link in OWNERS.md

Signed-off-by: Paul Cowan <paul.cowan@cutting.scot>
Signed-off-by: blbose <lillian.bose@philips.com>

* Added description for publish:gerrit scaffolder actions

Signed-off-by: Andy Muldoon <andy.muldoon@ericsson.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* Add existing OpenCost plugin to the Backstage Plugin Directory

Signed-off-by: Matt Ray <github@mattray.dev>
Signed-off-by: blbose <lillian.bose@philips.com>

* Squared Penny the Pig logo

Signed-off-by: Matt Ray <github@mattray.dev>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/supertest to v2.0.15

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/stoppable to v1.1.2

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/rollup-plugin-peer-deps-external to v2.2.3

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/regression to v2.0.4

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/recursive-readdir to v2.2.3

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/recharts to v1.8.26

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/luxon to v3.3.3

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/swagger-ui-react to v4.18.2

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/tar to v6.1.7

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* chore(deps): update dependency @types/xml2js to v0.4.13

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* feat: GH Workflow Runs as Card View

Signed-off-by: blbose <lillian.bose@philips.com>

* file mode changes revert

Signed-off-by: blbose <lillian.bose@philips.com>

* api-report warning fix

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: UX perspective changes

Signed-off-by: blbose <lillian.bose@philips.com>

* fix:eslint warning removal

Signed-off-by: blbose <lillian.bose@philips.com>

* fix:avoiding of id based on acierto review

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: latest review comments

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: review comment changes from Freben

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: review comment changes from Freben

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflict

Signed-off-by: blbose <lillian.bose@philips.com>

* fix: rebase conflicts

Signed-off-by: blbose <lillian.bose@philips.com>

---------

Signed-off-by: blbose <lillian.bose@philips.com>
Signed-off-by: Paul Cowan <paul.cowan@cutting.scot>
Signed-off-by: Andy Muldoon <andy.muldoon@ericsson.com>
Signed-off-by: Matt Ray <github@mattray.dev>
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Cowan <paul.cowan@cutting.scot>
Co-authored-by: Andy Muldoon <andy.muldoon@ericsson.com>
Co-authored-by: Matt Ray <github@mattray.dev>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 19:55:41 +01:00

3.1 KiB

GitHub Actions Plugin

Website: https://github.com/actions

Screenshots

TBD

Setup

Generic Requirements

  1. Provide OAuth credentials:

    1. Create an OAuth App in the GitHub organization with the callback URL set to http://localhost:7007/api/auth/github/handler/frame.
    2. Take the Client ID and Client Secret from the newly created app's settings page and put them into AUTH_GITHUB_CLIENT_ID and AUTH_GITHUB_CLIENT_SECRET environment variables.
  2. 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
    

Standalone app requirements

  1. Install the plugin dependency in your Backstage app package:
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-github-actions
  1. Add to the app EntityPage component:
// In packages/app/src/components/catalog/EntityPage.tsx
import {
  EntityGithubActionsContent,
  isGithubActionsAvailable,
} from '@backstage/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">
      <EntityGithubActionsContent />
    </EntityLayout.Route>
  1. Run the app with yarn start and the backend with yarn start-backend. Then navigate to /github-actions/ under any entity.

Self-hosted / Enterprise GitHub

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.

  1. Add the host and apiBaseUrl to your app-config.yaml
# app-config.yaml

integrations:
  github:
    - host: 'your-github-host.com'
      apiBaseUrl: 'https://api.your-github-host.com'

Features

  • List workflow runs for a project
  • Dive into one run to see a job steps
  • Retry runs
  • Pagination for runs

Limitations

  • There is a limit of 100 apps for one OAuth client/token pair
  • The OAuth application must be at the GitHub organization level in order to display the workflows. If you do not see any workflows, confirm the OAuth application was created in the organization and not a specific user account.

Optional Workflow Runs Card View

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>