All Projects β†’ kaxil β†’ boring-cyborg

kaxil / boring-cyborg

Licence: ISC License
πŸ€– A Github bot to automatically label PRs, issues and perform all the boring operations that you don't want to do.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to boring-cyborg

new-pr-welcome
Welcome users when they open their first PR in your repository
Stars: ✭ 20 (-69.7%)
Mutual labels:  probot, github-app, probot-app
merge-me
A GitHub app that merges your pull requests once all required checks pass.
Stars: ✭ 19 (-71.21%)
Mutual labels:  probot, github-app, probot-app
Probot Gpg
A GitHub App that enforces GPG signatures on pull requests (no longer maintained)
Stars: ✭ 13 (-80.3%)
Mutual labels:  probot, github-app, probot-app
scalafmt-probot
πŸ€–Github bot for checking code formatting with scalafmt
Stars: ✭ 15 (-77.27%)
Mutual labels:  probot, github-app, probot-app
react-preview
a GitHub App built with probot that generates preview links for react based projects.
Stars: ✭ 14 (-78.79%)
Mutual labels:  probot, github-app, probot-app
branch-switcher
a GitHub bot that switches the base branch of pull requests to the preferred branch
Stars: ✭ 15 (-77.27%)
Mutual labels:  probot, github-app, probot-app
issuelabeler
A GitHub bot to label issues automatically based on title and body against list of defined labels. System status (https://status.verticalaxisbd.com/)
Stars: ✭ 23 (-65.15%)
Mutual labels:  probot, github-app, probot-app
Todo
πŸ€–βœ… GitHub App that creates new issues from actionable comments in your code.
Stars: ✭ 685 (+937.88%)
Mutual labels:  probot, github-app, probot-app
linter-alex
πŸ“Sensitive, considerate writing before you merge your Pull Requests
Stars: ✭ 67 (+1.52%)
Mutual labels:  probot, github-app, probot-app
Auto Assign
πŸ€– A Probot app that adds reviewers to pull requests when pull requests are opened.
Stars: ✭ 140 (+112.12%)
Mutual labels:  probot, github-app, probot-app
Mergeable
πŸ€– All the missing GitHub automation πŸ™‚ πŸ™Œ
Stars: ✭ 475 (+619.7%)
Mutual labels:  probot, github-app, probot-app
Gh Polls Bot
Automatically create polls in GitHub issues.
Stars: ✭ 187 (+183.33%)
Mutual labels:  probot, github-app, probot-app
Stale
A GitHub App built with Probot that closes abandoned Issues and Pull Requests after a period of inactivity.
Stars: ✭ 1,070 (+1521.21%)
Mutual labels:  probot, github-app, probot-app
Request Info
Requests more info from PRs/Issues with either the default title or a blank body
Stars: ✭ 89 (+34.85%)
Mutual labels:  probot, github-app, probot-app
Commitlint Bot
[NOT MAINTAINED] use https://github.com/apps/semantic-pull-requests
Stars: ✭ 157 (+137.88%)
Mutual labels:  probot, github-app, probot-app
Weekly Digest
Weekly summary of activity on your GitHub repository πŸ“†
Stars: ✭ 199 (+201.52%)
Mutual labels:  probot, github-app, probot-app
yamburger
YAML syntax got you down? That's a YAMBURGER!
Stars: ✭ 32 (-51.52%)
Mutual labels:  github-app, probot-app
app
GitHub App that enforces the Developer Certificate of Origin (DCO) on Pull Requests
Stars: ✭ 236 (+257.58%)
Mutual labels:  github-app, probot-app
probot-lambda
Test for running probot in AWS Lambda
Stars: ✭ 25 (-62.12%)
Mutual labels:  probot, probot-app
probot-ooo
πŸ™… Respond with an auto-responder when you are OOO
Stars: ✭ 36 (-45.45%)
Mutual labels:  probot, probot-app

Boring Cyborg

πŸ€– A GitHub App built with Probot that automatically label PRs, issues and performs all the boring operations that you don't want to do.

Using Boring Cyborg Probot to add new labels

Congratulate user on first merged PR

Verifies that commit title matches regexp (single commit)

Verifies that PR title matches regexp (multiple commits)

Features

  • Add labels based on the path of the file that are modified in the PR.
  • Welcome new users to your project when they open their first Issue/PR or first merged PR by an automated comment.
  • Insert Issue (Jira/Github etc) link in PR description based on the Issue ID in PR title.
  • Verifies if commits/PR titles match the regular expression specified
  • Check if a branch is up to date with the master when specific files are modified in the PR. This is helpful when you desire the changes to be applied sequentially, for example, alembic migrations.

Usage

  1. Configure the Github App
  2. After installing the Github app, create .github/boring-cyborg.yml in the default branch to enable it
  3. It will start scanning for pull requests within few minutes.
##### Labeler ##########################################################################################################
# Enable "labeler" for your PR that would add labels to PRs based on the paths that are modified in the PR.
labelPRBasedOnFilePath:
  # Add 'label1' to any changes within 'example' folder or any subfolders
  label1:
    - example/**/*

  # Add 'label2' to any file changes within 'example2' folder
  label2:
    - example2/*

  # Complex: Add 'area/core' label to any change within the 'core' package
  area/core:
    - src/core/*
    - src/core/**/*  

  # Add 'test' label to any change to *.spec.js files within the source dir
  test:
    - src/**/*.spec.js

# Various Flags to control behaviour of the "Labeler"
labelerFlags:
  # If this flag is changed to 'false', labels would only be added when the PR is first created and not when existing 
  # PR is updated.
  # The default is 'true' which means the labels would be added when PR is updated even if they were removed by the user   
  labelOnPRUpdates: true

##### Greetings ########################################################################################################
# Comment to be posted to welcome users when they open their first PR
firstPRWelcomeComment: >
  Thanks for opening this pull request! Please check out our contributing guidelines.

# Comment to be posted to congratulate user on their first merged PR
firstPRMergeComment: >
  Awesome work, congrats on your first merged pull request!

# Comment to be posted to on first time issues
firstIssueWelcomeComment: >
  Thanks for opening your first issue here! Be sure to follow the issue template!

###### IssueLink Adder #################################################################################################
# Insert Issue (Jira/Github etc) link in PR description based on the Issue ID in PR title.
insertIssueLinkInPrDescription:
   # specify the placeholder for the issue link that should be present in the description
  descriptionIssuePlaceholderRegexp: "^Issue link: (.*)$"
  matchers:
    # you can have several matches - for different types of issues
    # only the first matching entry is replaced
    jiraIssueMatch:
      # specify the regexp of issue id that you can find in the title of the PR
      # the match groups can be used to build the issue id (${1}, ${2}, etc.).
      titleIssueIdRegexp: \[(AIRFLOW-[0-9]{4})\]
      # the issue link to be added. ${1}, ${2} ... are replaced with the match groups from the
      # title match (remember to use quotes)
      descriptionIssueLink: "[${1}](https://issues.apache.org/jira/browse/${1}/)"
    docOnlyIssueMatch:
      titleIssueIdRegexp: \[(AIRFLOW-X{4})\]
      descriptionIssueLink: "`Document only change, no JIRA issue`"

###### Title Validator #################################################################################################
# Verifies if commit/PR titles match the regexp specified
verifyTitles:
  # Regular expression that should be matched by titles of commits or PR
  titleRegexp: ^\[AIRFLOW-[0-9]{4}\].*$|^\[AIRFLOW-XXXX\].*$
  # If set to true, it will always check the PR title (as opposed to the individual commits).
  alwaysUsePrTitle: true
  # If set to true, it will only check the commit in case there is a single commit.
  # In case of multiple commits it will check PR title.
  # This reflects the standard behaviour of Github that for `Squash & Merge` GitHub
  # uses the PR title rather than commit messages for the squashed commit Β―\_(ツ)_/Β―
  # For single-commit PRs it takes the squashed commit message from the commit as expected.
  #
  # If set to false it will check all commit messages. This is useful when you do not squash commits at merge.
  validateEitherPrOrSingleCommitTitle: true
  # The title the GitHub status should appear from.
  statusTitle: "Title Validator"
  # A custom message to be displayed when the title passes validation.
  successMessage: "Validation successful!"
  # A custom message to be displayed when the title fails validation.
  # Allows insertion of ${type} (commit/PR), ${title} (the title validated) and ${regex} (the titleRegexp above).
  failureMessage: "Wrong ${type} title: ${title}"

###### PR/Branch Up-To-Date Checker ####################################################################################
# Check if the branch is up to date with master when certain files are modified
checkUpToDate:
  # The default branch is "master", change the branch if you want to check against a different target branch  
  targetBranch: master
  files:
  # File paths that you want to check for
  # In this example, it checks if the branch is up to date when alembic migrations are modified in the PR.
  # It helps avoid multiple heads in alembic migrations in a collaborative development project.
    - airflow/migrations/*
    - airflow/migrations/**/*
    - airflow/alembic.ini

All the features are optional. Simply add the config for the feature you want to use.

Setup

# Install dependencies
npm install

# Run the bot
npm start

Contributing

If you have suggestions for how boring-cyborg could be improved, or want to report a bug, open an issue! We'd love all and any contributions.

For more, check out the Contributing Guide.

License

ISC Β© 2020 Kaxil Naik

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].