Files
backstage/plugins/github-actions
blam f76a8aedf4 Merge branch 'master' of github.com:backstage/backstage into mob/scaffolder-cra-fixes
* 'master' of github.com:backstage/backstage: (758 commits)
  add zalando to adpoters list
  Avoid passing undefined to values that are marked as optional
  Support profile of groups in LdapOrgReaderProcessor
  Import picture and display name by the GitHubOrgReaderProcessor
  Use the new group profile section in the group profile card
  Add support for the group profile element to Microsoft Graph processor
  Add profile section to group entity
  Implement readTree on BitBucketUrlReader - Add getBitbucketDefaultBranch
  Implement readTree on BitBucketUrlReader - Modify changeset
  Implement readTree on BitBucketUrlReader - Implement getBitbucketDownloadUrl and remove hash for Bitbucket Server
  Implement readTree on BitBucketUrlReader
  WIP: implement readTree for bitbucket
  updated scaffolder config.d to avoid config failure
  build(deps): bump swagger-ui-react from 3.37.2 to 3.38.0
  included changeset
  Introduced config schema for plugins/scaffolder-backend
  Write relations directly as part of batch add / update of entities.
  Add codeowners for techdocs-common package
  techdocs-common: Add type dependencies
  Update nice-trains-punch.md
  ...
2020-12-15 14:02:21 +01:00
..
2020-12-10 11:25:39 +00:00

GitHub Actions Plugin

Website: https://github.com/actions

Screenshots

TBD

Setup

Generic Requirements

  1. Provide OAuth credentials:

    1. Create an OAuth App with callback URL set to http://localhost:7000/api/auth/github.
    2. Take 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 env 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: guest
    

Standalone app requirements

If you didn't clone this repo you have to do some extra work.

  1. Add plugin API to your Backstage instance:
yarn add @backstage/plugin-github-actions
// packages/app/src/api.ts
import { ApiRegistry } from '@backstage/core';
import { GithubActionsClient, githubActionsApiRef } from '@backstage/plugin-github-actions';

const builder = ApiRegistry.builder();
builder.add(githubActionsApiRef, new GithubActionsClient());

export default builder.build() as ApiHolder;
  1. Add plugin itself:
// packages/app/src/plugins.ts
export { plugin as GithubActions } from '@backstage/plugin-github-actions';
  1. Run the app with yarn start and the backend with yarn --cwd packages/backend start, navigate to /github-actions/.

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