- Move existing PRs to the correct `Pipeline for QA` project board column (`REVIEW`/`IN TEST`), depending on whether or not the required conditions are met: is mergeable, at least two reviewers have approved it, and there is no request for changes.
- After a PR is moved to the column specified in `automated-tests/kickoff-column-name` and the build has passed successfully, the bot will kick a test automation build in Jenkins (retry periodically if the PR build is still running).
- New functionality will be added in the future, and the wishlist is being tracked [here](https://docs.google.com/document/d/19NZEJ453av-owAEBXcIPjavbGKMBFlfVcwsuQ_ORzR4/)).
The project board's names, column names, welcome message, and other values are stored in the `.github/github-bot.yml` file. It can be overriden for each specific repository by adding a file in the same path on the respective repository (see [probot-config](https://github.com/getsentry/probot-config)).
This bot is meant to be packaged as a GitHub App. There are two steps to it: creating the app, and installing the app. The app needs to be created only once and can be made public and reused for any number of repositories and organizations.
The bot gets its settings from a per-repo file located at `.github/github-bot.yml`. That file extends the [base file](https://github.com/status-im/probot-settings/blob/master/.github/github-bot.yml) at the status-im/probot-settings repo.
Examples of settings that can be configured:
-`github-team/slug`: Slug of the team that owns the respective repository
-`slack/notification/room`: Slack room used for notifications (e.g. `status-probot`)
- Repository project board settings:
-`project-board/name`: Name of the QA pipeline project board
-`project-board/contributor-column-name`: Name of the column in the project board to group issues that are being worked on by a contributor
-`project-board/review-column-name`: Name of the column in the project board to group issues that are up for review
-`project-board/test-column-name`: Name of the column in the project board to group issues that up for testing by QA
- Bounty project board settings:
-`bounty-project-board/name`: Name of the bounty project board in GitHub
-`bounty-project-board/owner`: GitHub username of the maintainer of the bounty project board (used to e.g. send Slack notifications)
-`bounty-project-board/awaiting-approval-column-name`: Name of the column in the bounty project board to group issues that are awaiting for bounty approval
-`bounty-project-board/awaiting-approval-label-name`: Name of the label used in issues to declare that an issue is awaiting approval to become a bounty
-`bounty-project-board/bounty-label-name`: Name of the label used in issues to declare that an issue is a bounty
-`bounty-project-board/bounty-size-label-name-regex`: Regular expression that matches the bounty size label and returns a group containing the size itself
-`automated-tests/repo-full-name`: Full name of the repo to watch in project cards in order to automatically run automated tests CI job (e.g. `status-im/status-react`)
-`automated-tests/job-full-name`: Full name of the CI job to run automated tests (e.g. `end-to-end-tests/status-app-end-to-end-tests`)