Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/go_modules/packages/flakybot/gola…
Browse files Browse the repository at this point in the history
…ng.org/x/net-0.23.0
  • Loading branch information
chingor13 committed May 20, 2024
2 parents bf6d73e + 5dee5e5 commit dce0f69
Show file tree
Hide file tree
Showing 25 changed files with 1,343 additions and 151 deletions.
19 changes: 17 additions & 2 deletions packages/auto-approve/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,11 @@ processes:
- "PythonSampleAppDependency"
- "JavaSampleAppDependency"
- "NodeGeneratorDependency"
- "OwlBotTemplateChangesNode"
- "OwlBotPRsNode"
```

These seven processes represent different workflows for what auto-approve will approve and merge in a given repository. To see their logic in full, see the corresponding file in /src/process-checks.
These processes represent different workflows for what auto-approve will approve and merge in a given repository. To see their logic in full, see the corresponding file in /src/process-checks.

Below is what each process checks for:

Expand Down Expand Up @@ -187,7 +189,20 @@ Below is what each process checks for:
- /package.json$/, /\.bzl$/, or /pnpm-lock\.yaml$/
- Increase the non-major package version of a dependency
- Change the dependency that was there previously, and that is on the title of the PR

* OwlBotTemplateChangesNode:
- Checks that the author is 'gcf-owl-bot[bot]'
- Checks that the title of the PR does NOT include BREAKING, feat, fix, !
- Checks that the title of the PR starts with chore, build, test, refactor
- Checks that the body of the PR does not contain 'PiperOrigin-RevId'
- Checks that the PR is the first of owlbot PRs in the repo (so that they are not merged out of order)
- Checks that there are no other commit authors other than owlbot on the repo
* OwlBotPRsNode:
- Checks that the author is 'gcf-owl-bot[bot]'
- Checks that the title of the PR does NOT include BREAKING, !
- Checks that the title of the PR starts with chore, build, test, refactor, feat, fix,
- Checks that the body of the PR DOES contain 'PiperOrigin-RevId'
- Checks that the PR is the first of owlbot PRs in the repo (so that they are not merged out of order)
- Checks that there are no other commit authors other than owlbot on the repo


This change in configuration permits the following:
Expand Down
212 changes: 106 additions & 106 deletions packages/auto-approve/__snapshots__/auto-approve.test.js
Original file line number Diff line number Diff line change
@@ -1,185 +1,185 @@
exports['auto-approve main auto-approve function config exists on main branch approves and tags a PR if a config exists & is valid & PR is valid 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch approves and tags a PR if a config exists & is valid & PR is valid 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config exists on main branch still attempts to add an automerge: exact label if there is an approval 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch approves and tags a PR if everything is valid, and it is coming from a fork 1'] = {
'head_sha': '65f14b92a8135948008c6e26344167a2dac9f066',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "65f14b92a8135948008c6e26344167a2dac9f066",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch approves and tags a PR if everything is valid, and it is coming from a fork 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config exists on main branch retries if etag is not current 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch retries if etag is not current 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config exists on main branch stops retrying to add the label after 3 attempts, even if it is never successful 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch stops retrying to add the label after 3 attempts, even if it is never successful 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config exists on main branch submits a failing check if config exists but is not valid 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'failure',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'auto-approve.yml config check failed',
'text': 'See the following errors in your auto-approve.yml config:\n[{"wrongProperty":"wrongProperty","message":"message"}]\n'
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "failure",
"output": {
"title": "Auto-approve.yml check",
"summary": "auto-approve.yml config check failed",
"text": "See the following errors in your auto-approve.yml config:\n[{\"wrongProperty\":\"wrongProperty\",\"message\":\"message\"}]\n"
}
}

exports['auto-approve main auto-approve function config exists on main branch logs to the console if config is valid but PR is not 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch will not check config on master if the config is modified on PR 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'failure',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'auto-approve.yml config check failed',
'text': 'See the following errors in your auto-approve.yml config:\n\n'
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "failure",
"output": {
"title": "Auto-approve.yml check",
"summary": "auto-approve.yml config check failed",
"text": "See the following errors in your auto-approve.yml config:\n\n"
}
}

exports['auto-approve main auto-approve function config exists on main branch uses the correct function to check the PR if the config is V2 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch uses the correct function to check the PR if the config is V2 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config exists on main branch uses the correct function to check the PR if the config is V1 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config exists on main branch uses the correct function to check the PR if the config is V1 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve main auto-approve function config does not exist on main branch attempts to create a passing status check if PR contains correct config 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config does not exist on main branch attempts to create a failing status check if PR contains wrong config, and error messages check out 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'failure',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'auto-approve.yml config check failed',
'text': 'See the following errors in your auto-approve.yml config:\n[{"wrongProperty":"wrongProperty","message":"message"}]\n'
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "failure",
"output": {
"title": "Auto-approve.yml check",
"summary": "auto-approve.yml config check failed",
"text": "See the following errors in your auto-approve.yml config:\n[{\"wrongProperty\":\"wrongProperty\",\"message\":\"message\"}]\n"
}
}

exports['auto-approve main auto-approve function config does not exist on main branch passes PR if auto-approve is on main, not PR 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve main auto-approve function config does not exist on main branch passes PR if auto-approve is on main, not PR 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}

exports['auto-approve gets secrets and authenticates separately for approval creates a separate octokit instance and authenticates with secret in secret manager 1'] = {
'head_sha': 'c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a',
'name': 'Auto-approve.yml check',
'conclusion': 'success',
'output': {
'title': 'Auto-approve.yml check',
'summary': 'Successful auto-approve.yml config check',
'text': ''
"head_sha": "c5b0c82f5d58dd4a87e4e3e5f73cd752e552931a",
"name": "Auto-approve.yml check",
"conclusion": "success",
"output": {
"title": "Auto-approve.yml check",
"summary": "Successful auto-approve.yml config check",
"text": ""
}
}

exports['auto-approve gets secrets and authenticates separately for approval creates a separate octokit instance and authenticates with secret in secret manager 2'] = {
'event': 'APPROVE'
"event": "APPROVE"
}
2 changes: 1 addition & 1 deletion packages/auto-approve/__snapshots__/check-config.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ exports['check for config whether YAML file has valid schema should fail if ther
`

exports['check for config whether YAML file has valid schema V2 should fail if YAML has any other properties than the ones specified 1'] = `
[{"wrongProperty":{"allowedValues":["UpdateDiscoveryArtifacts","RegenerateReadme","DiscoveryDocUpdate","PythonDependency","PythonSampleDependency","NodeDependency","NodeRelease","JavaApiaryCodegen","JavaDependency","OwlBotTemplateChanges","OwlBotAPIChanges","PHPApiaryCodegen","PythonSampleAppDependency","JavaSampleAppDependency","DockerDependency","GoDependency","GoApiaryCodegen","NodeGeneratorDependency"]},"message":"must be equal to one of the allowed values"}]
[{"wrongProperty":{"allowedValues":["UpdateDiscoveryArtifacts","RegenerateReadme","DiscoveryDocUpdate","PythonDependency","PythonSampleDependency","NodeDependency","NodeRelease","JavaApiaryCodegen","JavaDependency","OwlBotTemplateChanges","OwlBotTemplateChangesNode","OwlBotPRsNode","OwlBotAPIChanges","PHPApiaryCodegen","PythonSampleAppDependency","JavaSampleAppDependency","DockerDependency","GoDependency","GoApiaryCodegen","NodeGeneratorDependency"]},"message":"must be equal to one of the allowed values"}]
`

exports['check for config whether YAML file has valid schema V2 should fail if the property is wrong 1'] = `
Expand Down
10 changes: 10 additions & 0 deletions packages/auto-approve/src/check-pr-v2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import {DockerDependency} from './process-checks/sample-application-repos/docker
import {NodeDependency} from './process-checks/node/dependency';
import {NodeGeneratorDependency} from './process-checks/node/generator-dependency';
import {NodeRelease} from './process-checks/node/release';
import {OwlBotTemplateChangesNode} from './process-checks/node/owlbot-template-changes';
import {OwlBotNode} from './process-checks/node/owlbot';
import {JavaDependency} from './process-checks/java/dependency';
import {OwlBotTemplateChanges} from './process-checks/owl-bot-template-changes';
import {OwlBotAPIChanges} from './process-checks/owl-bot-api-changes';
Expand Down Expand Up @@ -68,6 +70,14 @@ const typeMap = [
configValue: 'NodeRelease',
configType: NodeRelease,
},
{
configValue: 'OwlBotTemplateChangesNode',
configType: OwlBotTemplateChangesNode,
},
{
configValue: 'OwlBotPRsNode',
configType: OwlBotNode,
},
{
configValue: 'JavaApiaryCodegen',
configType: JavaApiaryCodegen,
Expand Down
Loading

0 comments on commit dce0f69

Please sign in to comment.