mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			377 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			377 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
| 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
 | ||
|     pull_request:
 | ||
|       mergeable: true
 | ||
|     status_1:
 | ||
|       context: "continuous-integration/travis-ci/pr"
 | ||
|     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: |-
 | ||
|         Thank you for your pull request! The most important CI builds succeeded, we’ll review the pull request soon.        
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       mergeable: true
 | ||
|     status_1:
 | ||
|       context: "continuous-integration/travis-ci/pr"
 | ||
|     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:
 | ||
|     comment:
 | ||
|       identifier: "ci-result"
 | ||
|       message: |-
 | ||
|         @{{commit.author.login}} The most important CI builds failed. This way your PR can't be merged.
 | ||
| 
 | ||
|         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.        
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # Add tests-needed label depending on codedov status
 | ||
| # comment to point the user writing test cases
 | ||
| # comment in case of success
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       mergeable: true
 | ||
|     status:
 | ||
|       context: "codecov/patch"
 | ||
|     ensure:
 | ||
|       value: "{{status.state}}"
 | ||
|       equals: "success"
 | ||
|     label: "PR: tests-needed"
 | ||
|   actions:
 | ||
|     label:
 | ||
|       remove: "PR: tests-needed"
 | ||
|     comment:
 | ||
|       identifier: "tests-result"
 | ||
|       message: |-
 | ||
|         The minimum test ratio has been reached. Thanks!        
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       mergeable: true
 | ||
|     status:
 | ||
|       context: "codecov/patch"
 | ||
|     ensure:
 | ||
|       value: "{{status.state}}"
 | ||
|       equals: "failure"
 | ||
|   actions:
 | ||
|     label:
 | ||
|       add: "PR: tests-needed"
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       mergeable: true
 | ||
|     status:
 | ||
|       context: "codecov/patch"
 | ||
|     ensure:
 | ||
|       value: "{{status.state}}"
 | ||
|       equals: "failure"
 | ||
|     age:
 | ||
|       value: "{{status.created_at}}"
 | ||
|       minimum: 1h
 | ||
|     permission: "read|none"
 | ||
|   actions:
 | ||
|     comment:
 | ||
|       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).
 | ||
| 
 | ||
|         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).
 | ||
| 
 | ||
|         @{{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.        
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # add conflict label to pull requests with conflict
 | ||
| # on conflict all result labels are removed
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       mergeable: false
 | ||
|   actions:
 | ||
|     label:
 | ||
|       add: "PR: conflict"
 | ||
|       remove:
 | ||
|         - "PR: tests-needed"
 | ||
|         - "PR: CI-ok"
 | ||
|         - "PR: CI-not-ok"
 | ||
| - 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
 | ||
|     ensure:
 | ||
|       value: "{{review.state}}"
 | ||
|       equals: APPROVED
 | ||
|   actions:
 | ||
|     label:
 | ||
|       add: "PR: reviewed-approved"
 | ||
|       remove:
 | ||
|       - "PR: review-outdated"
 | ||
|       - "PR: unreviewed"
 | ||
|       - "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
 | ||
|     not:
 | ||
|       label: "review-outdated"
 | ||
|     ensure:
 | ||
|       value: "{{commit.author.login}}"
 | ||
|       notEquals: "{{review.user.login}}"
 | ||
|   actions:
 | ||
|     label:
 | ||
|       add: "PR: review-outdated"
 | ||
|       remove:
 | ||
|       - "PR: reviewed-approved"
 | ||
|       - "PR: reviewed-changes-requested"
 | ||
|       - "PR: unreviewed"
 | ||
|       - "PR: reviewed"
 | ||
|     comment:
 | ||
|       identifier: "review-outdated"
 | ||
|       message: |-
 | ||
|         @{{commit.author.login}} Thanks for your update.
 | ||
| 
 | ||
|         I labeled the Pull Request so reviewers will review it again.
 | ||
| 
 | ||
|         @{{review.user.login}} Please review the new changes.        
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     commit: true
 | ||
|     not:
 | ||
|       review:
 | ||
|         state: APPROVED|CHANGES_REQUESTED
 | ||
|   actions:
 | ||
|     label: "PR: unreviewed"
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # add non-master label to pull request to other branch
 | ||
| - filters:
 | ||
|     pull_request:
 | ||
|       base_ref: "^(?!master)"
 | ||
|   actions:
 | ||
|     label: "PR: non-master"
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # add small label to small pull requests
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     pull_request:
 | ||
|       additions: "<= 10"
 | ||
|       deletions: "<= 10"
 | ||
|       changed_files: "<= 2"
 | ||
|   actions:
 | ||
|     label: "PR: small"
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # add non-master label to pull request to other branch
 | ||
| - filters:
 | ||
|     open: true
 | ||
|     age:
 | ||
|       minimum: 1d
 | ||
|       maximum: 1w
 | ||
|     pull_request:
 | ||
|       head_ref: "^master$"
 | ||
|     permission: "read|none"
 | ||
|   actions:
 | ||
|     comment:
 | ||
|       identifier: "head-master"
 | ||
|       edit: true
 | ||
|       message: |-
 | ||
|         Hi @{{pull_request.user.login}}.
 | ||
| 
 | ||
|         Just a little hint from a friendly bot about the best practice when submitting pull requests:
 | ||
| 
 | ||
|         > 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
 | ||
|     comment: "\\s*@webpack-bot\\s+move\\s+(?:to\\s+)?([a-z0-9_\\-\\.]+/[a-z0-9_\\-\\.]+)\\s*([\\s\\S]*)$"
 | ||
|     not:
 | ||
|       comment_1:
 | ||
|         matching: "moved\\-by\\-bot"
 | ||
|         author: "."
 | ||
|     permission:
 | ||
|       user: "{{comment.actor.login}}"
 | ||
|   actions:
 | ||
|     new_issue:
 | ||
|       target: "{{{comment_match.[1]}}}"
 | ||
|       body: |-
 | ||
|         {{{issue.body}}}
 | ||
| 
 | ||
|         ---
 | ||
| 
 | ||
|         This issue was moved from {{owner}}/{{repo}}#{{issue.number}} by @{{comment.actor.login}}. Orginal issue was by @{{issue.user.login}}.
 | ||
| 
 | ||
|         {{{comment_match.[2]}}}        
 | ||
|     comment:
 | ||
|       identifier: moved-by-bot
 | ||
|       message: |-
 | ||
|         I've moved it to {{comment_match.[1]}}.        
 | ||
|     close: true
 |