karthikeyann / ops-bot

A Probot application used by the Ops team for automation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ops-bot

This repo contains a Probot application. The application contains the plugins listed below and is deployed using the probot/serverless-lambda package via the Serverless framework.

Plugins

The plugins are listed in the src/plugins folder.

  • Label Checker - Sets a status on PRs that passes if one (and only one) of the following labels from each list have been applied:
    • bug, doc, feature request, or improvement
    • breaking or non-breaking
  • Release Drafter - Opens up a draft release on GitHub anytime a PR is merged to a versioned branch (i.e. branch-0.17, branch-0.18, etc.). The draft body includes a categorized changelog consisting of the PRs that have been merged on that branch.
  • Auto Merger - Automatically merges PRs that include the @gpucibot merge comment and meet the merge criteria outlined in https://docs.rapids.ai/resources/auto-merger/.
  • Branch Checker - Set a status on PRs that checks whether they are targeting either the repo's default branch or default branch + 1
  • External Contributors - For PRs from non-organization members, this plugin copies source code from their forked branch to the source repository after an okay to test comment has been posted on the PR. This allows contributions from external contributors to be vetted before CI is run. Subsequent pushes to the PR will also be copied to the source repository branch. The source repository branch will be deleted when the PR is closed. This plugin mostly exists as a workaround for the feature gap in Jenkins' multi-branch pipelines described here.

Deployment

The Serverless framework is used to deploy the Probot application to an AWS Lambda instance. The deployment configuration can be seen in the serverless.yaml file. A deployment will happen automatically anytime a change is merged to the main branch affecting any of the following files: source code files, package.json file, or serverless.yaml file. See the deploy.yaml GitHub Action for more details.

npm Scripts

# Build
npm run build

# Test
npm run test

# Deploy
npm run deploy

Contributing

Any new functionality should be introduced as a new plugin in the src/plugins directory. New plugins should make use of the shared featureIsDisabled function so that repositories can disable the feature if they desire. New plugins should also have an entry added in config.ts

About

A Probot application used by the Ops team for automation.

License:Apache License 2.0


Languages

Language:TypeScript 98.9%Language:Nunjucks 0.8%Language:JavaScript 0.3%