webpack/open-bot.yaml

377 lines
8.9 KiB
YAML
Raw Normal View History

bot: "webpack-bot"
rules:
# Add ci-ok, ci-not-ok labels depending on travis status
# comment to point the user to the results
# comment in case of success
- filters:
open: true
2017-04-06 06:08:59 +08:00
pull_request:
mergeable: true
status_1:
context: "continuous-integration/travis-ci/pr"
2017-04-06 06:08:59 +08:00
status_2:
context: "continuous-integration/appveyor/pr"
ensure_1:
value: "{{status_1.state}}"
equals: "success"
ensure_2:
value: "{{status_2.state}}"
equals: "success"
actions:
label:
add: "PR: CI-ok"
remove: "PR: CI-not-ok"
comment:
identifier: "ci-result"
message: |-
2017-04-06 00:20:26 +08:00
Thank you for your pull request! The most important CI builds succeeded, well review the pull request soon.
- filters:
open: true
2017-04-06 06:08:59 +08:00
pull_request:
mergeable: true
status_1:
context: "continuous-integration/travis-ci/pr"
2017-04-06 06:08:59 +08:00
status_2:
context: "continuous-integration/appveyor/pr"
any:
ensure_1:
value: "{{status_1.state}}"
equals: "failure"
ensure_2:
value: "{{status_2.state}}"
equals: "failure"
actions:
label:
add: "PR: CI-not-ok"
remove: "PR: CI-ok"
set:
id: report_ci
value: yep
# Report specific error message if mocha fails
- filters:
ensure:
value: "{{report_ci}}"
equals: yep
commit: true
status:
context: "continuous-integration/travis-ci/pr"
travis_job:
state: "failed"
allow_failure: false
config:
env: JOB_PART=test
fetch: travis_job.log
string_cleanup:
id: logResult
value: "{{{fetch}}}"
remove:
- "^[\\s\\S]+?\\d+\\s+pending\n+"
- "npm ERR!.*\n"
- "\n*=============================================================================\n[\\s\\S]*"
actions:
comment:
identifier: "ci-result"
message: |-
@{{commit.author.login}} Please review the following output log for errors:
``` text
{{{logResult}}}
```
See [complete report here]({{status.target_url}}).
set:
id: report_ci
value: nope
# Report specific error message if linting fails
- filters:
ensure:
value: "{{report_ci}}"
equals: yep
commit: true
status:
context: "continuous-integration/travis-ci/pr"
travis_job:
state: "failed"
config:
env: JOB_PART=lint
fetch: travis_job.log
string_cleanup:
id: logResult
value: "{{{fetch}}}"
remove:
- "^[\\s\\S]+?npm run travis:\\$JOB_PART\n*"
- "npm ERR!.*\n"
- "\n*The command \"npm run travis:\\$JOB_PART\" exited [\\s\\S]*"
actions:
comment:
identifier: "ci-result"
message: |-
@{{commit.author.login}} The tests look fine, but there are code style issue in your Pull Request. Please review the following:
``` text
{{{logResult}}}
```
See [complete report here]({{status.target_url}}).
set:
id: report_ci
value: nope
# Report a general error message
- filters:
ensure:
value: "{{report_ci}}"
equals: yep
commit: true
status_1:
context: "continuous-integration/travis-ci/pr"
status_2:
context: "continuous-integration/appveyor/pr"
actions:
2017-04-01 07:27:32 +08:00
comment:
identifier: "ci-result"
message: |-
@{{commit.author.login}} The most important CI builds failed. This way your PR can't be merged.
2017-04-01 07:27:32 +08:00
2017-04-06 06:08:59 +08:00
Please take a look at the CI results from [travis]({{status_1.target_url}}) ({{status_1.state}}) and [appveyor]({{status_2.target_url}}) ({{status_2.state}}) and fix these issues.
2017-04-01 07:27:32 +08:00
2017-03-30 21:05:40 +08:00
# Add tests-needed label depending on codedov status
# comment to point the user writing test cases
# comment in case of success
- filters:
open: true
2017-04-06 06:10:42 +08:00
pull_request:
mergeable: true
2017-03-30 21:05:40 +08:00
status:
context: "codecov/patch"
ensure:
value: "{{status.state}}"
equals: "success"
2017-04-06 06:09:30 +08:00
label: "PR: tests-needed"
2017-03-30 21:05:40 +08:00
actions:
label:
remove: "PR: tests-needed"
comment:
identifier: "tests-result"
message: |-
The minimum test ratio has been reached. Thanks!
2017-04-05 04:20:23 +08:00
- filters:
open: true
2017-04-06 06:10:42 +08:00
pull_request:
mergeable: true
2017-04-05 04:20:23 +08:00
status:
context: "codecov/patch"
ensure:
value: "{{status.state}}"
equals: "failure"
actions:
label:
add: "PR: tests-needed"
2017-03-30 21:05:40 +08:00
- filters:
open: true
2017-04-06 06:10:42 +08:00
pull_request:
mergeable: true
2017-03-30 21:05:40 +08:00
status:
context: "codecov/patch"
ensure:
value: "{{status.state}}"
equals: "failure"
2017-04-05 00:40:59 +08:00
age:
value: "{{status.created_at}}"
minimum: 1h
permission: "read|none"
2017-03-30 21:05:40 +08:00
actions:
2017-04-01 07:27:32 +08:00
comment:
2017-03-30 21:05:40 +08:00
identifier: "tests-result"
message: |-
It looks like this Pull Request doesn't include [enough test cases]({{status.target_url}}) (based on Code Coverage analysis of the PR diff).
2017-04-01 07:27:32 +08:00
A PR need to be covered by tests if you add a new feature (we want to make sure that your feature is working) or if you fix a bug (we want to make sure that we don't run into a regression in future).
2017-04-01 07:27:32 +08:00
@{{issue.user.login}} Please check if this is appliable to your PR and if you can add more test cases.
Read the [test readme](https://github.com/webpack/webpack/blob/master/test/README.md) for details how to write test cases.
2017-03-30 21:05:40 +08:00
2017-04-05 20:25:06 +08:00
# add conflict label to pull requests with conflict
2017-04-06 06:10:42 +08:00
# on conflict all result labels are removed
2017-04-05 20:25:06 +08:00
- filters:
open: true
pull_request:
mergeable: false
actions:
label:
add: "PR: conflict"
2017-04-06 06:10:42 +08:00
remove:
- "PR: tests-needed"
- "PR: CI-ok"
- "PR: CI-not-ok"
2017-04-05 20:25:06 +08:00
- filters:
open: true
pull_request:
mergeable: true
actions:
label:
remove: "PR: conflict"
# add unreviewed, reviewed, review-outdated labels
# comment to ping reviewer
# comment on new PR
- filters:
open: true
in_order:
commit: true
review:
state: APPROVED|CHANGES_REQUESTED
2017-04-01 07:27:32 +08:00
ensure:
value: "{{review.state}}"
equals: APPROVED
actions:
label:
2017-04-01 07:27:32 +08:00
add: "PR: reviewed-approved"
remove:
- "PR: review-outdated"
- "PR: unreviewed"
2017-04-01 07:27:32 +08:00
- "PR: reviewed"
- filters:
open: true
in_order:
commit: true
review:
state: APPROVED|CHANGES_REQUESTED
ensure:
value: "{{review.state}}"
equals: CHANGES_REQUESTED
actions:
label:
add: "PR: reviewed-changes-requested"
remove:
- "PR: review-outdated"
- "PR: unreviewed"
- "PR: reviewed"
- filters:
open: true
in_order:
review:
state: APPROVED|CHANGES_REQUESTED
commit: true
2017-04-04 16:31:54 +08:00
not:
label: "review-outdated"
ensure:
value: "{{commit.author.login}}"
notEquals: "{{review.user.login}}"
actions:
label:
add: "PR: review-outdated"
remove:
2017-04-01 07:27:32 +08:00
- "PR: reviewed-approved"
- "PR: reviewed-changes-requested"
- "PR: unreviewed"
2017-04-01 07:27:32 +08:00
- "PR: reviewed"
2017-03-30 21:13:08 +08:00
comment:
identifier: "review-outdated"
2017-03-30 21:13:53 +08:00
message: |-
2017-04-01 07:27:32 +08:00
@{{commit.author.login}} Thanks for your update.
2017-03-30 21:13:08 +08:00
I labeled the Pull Request so reviewers will review it again.
2017-04-01 07:27:32 +08:00
2017-03-30 21:13:08 +08:00
@{{review.user.login}} Please review the new changes.
- filters:
open: true
commit: true
not:
review:
state: APPROVED|CHANGES_REQUESTED
actions:
label: "PR: unreviewed"
2017-04-01 07:27:32 +08:00
2017-04-06 06:12:17 +08:00
# add non-master label to pull request to other branch
2017-04-01 07:27:32 +08:00
- filters:
2017-04-06 06:12:17 +08:00
pull_request:
base_ref: "^(?!master)"
2017-04-01 07:27:32 +08:00
actions:
2017-04-06 06:12:17 +08:00
label: "PR: non-master"
2017-04-01 07:27:32 +08:00
2017-04-06 06:12:17 +08:00
# add small label to small pull requests
2017-04-01 07:27:32 +08:00
- filters:
2017-04-06 06:12:17 +08:00
open: true
2017-04-01 07:27:32 +08:00
pull_request:
2017-04-06 06:12:17 +08:00
additions: "<= 10"
deletions: "<= 10"
changed_files: "<= 2"
2017-04-01 07:27:32 +08:00
actions:
2017-04-06 06:12:17 +08:00
label: "PR: small"
2017-04-01 07:27:32 +08:00
# add non-master label to pull request to other branch
- filters:
2017-04-05 00:40:59 +08:00
open: true
age:
minimum: 1d
maximum: 1w
2017-04-01 07:27:32 +08:00
pull_request:
head_ref: "^master$"
permission: "read|none"
2017-04-01 07:27:32 +08:00
actions:
comment:
identifier: "head-master"
edit: true
message: |-
Hi @{{pull_request.user.login}}.
2017-04-05 00:40:59 +08:00
Just a little hint from a friendly bot about the best practice when submitting pull requests:
2017-04-01 07:27:32 +08:00
> Don't submit pull request from your own `master` branch. It's recommended to create a feature branch for the PR.
*You don't have to change it for this PR, just make sure to follow this hint the next time you submit a PR.*
# Move issue task
- filters:
open: true
2017-04-08 16:08:30 +08:00
comment: "\\s*@webpack-bot\\s+move\\s+(?:to\\s+)?([a-z0-9_\\-\\.]+/[a-z0-9_\\-\\.]+)\\s*([\\s\\S]*)$"
not:
comment_1:
2017-04-08 15:11:52 +08:00
matching: "moved\\-by\\-bot"
author: "."
permission:
user: "{{comment.actor.login}}"
actions:
new_issue:
2017-04-08 15:49:44 +08:00
target: "{{{comment_match.[1]}}}"
body: |-
2017-04-08 15:49:44 +08:00
{{{issue.body}}}
2017-04-08 15:12:53 +08:00
---
This issue was moved from {{owner}}/{{repo}}#{{issue.number}} by @{{comment.actor.login}}. Orginal issue was by @{{issue.user.login}}.
2017-04-08 15:49:44 +08:00
{{{comment_match.[2]}}}
comment:
identifier: moved-by-bot
message: |-
I've moved it to {{comment_match.[1]}}.
close: true