Skip to content

Conversation

@phillipj
Copy link
Member

@phillipj phillipj commented Jun 9, 2018

Another long standing cleanup to reduce the errors logs we've seen from the bot.

We have for a long time seen errors logged when Jenkins tells the bot to report inline pull requests statuses, when the build in question is not related to a pull request, but an ordinary branch like the v8.x-staging branch.

In short the error raised by github.com said we couldn't fetch commits related to pull request "v8.x-staging". It expects a pull request number to be provided when fetching those commits.

These changes checks if the git reference provided by Jenkins does in fact point to a pull request, if not the incoming request from Jenkins gets a 400 Bad Request as response.

13:01:11.244 ERROR bot: Got error when retrieving GitHub commits for PR (req_id=78e986d9-6c52-485c-bac2-64c2797a7a40, pr=v8.x-staging, job=node-test-commit-aix, status=failure)
    err: {
      "code": "400",
      "status": "Bad Request",
      "message": "Invalid value for parameter 'number': v8.x-staging"
    }

/cc @nodejs/github-bot

We have for a long time seen errors logged when Jenkins tells the bot
to report inline pull requests statuses, when the build in question is
not related to a pull request, but an ordinary branch like the "v8.x-staging"
branch.

In short the error raised by github.com said we couldn't fetch commits
related to pull request "v8.x-staging". It expects a pull request number
to be provided when fetching those commits.

These changes checks if the git reference provided by Jenkins does in
fact point to a pull request, if not the incoming request from Jenkins
gets a 400 Bad Request as response.

```
13:01:11.244 ERROR bot: Got error when retrieving GitHub commits for PR (req_id=78e986d9-6c52-485c-bac2-64c2797a7a40, pr=v8.x-staging, job=node-test-commit-aix, status=failure)
    err: {
      "code": "400",
      "status": "Bad Request",
      "message": "Invalid value for parameter 'number': v8.x-staging"
    }
```
maclover7

This comment was marked as off-topic.

@phillipj phillipj merged commit 2db3264 into nodejs:master Jun 9, 2018
@phillipj phillipj deleted the fix-commits-for-staging-branches branch June 9, 2018 13:55
@phillipj
Copy link
Member Author

phillipj commented Jun 9, 2018

There's still some improvements to be made to avoid this kinds of errors:

20:18:13.316Z ERROR bot: Got error when retrieving GitHub commits for PR (req_id=3c6b1a20-6c22-11e8-8f26-49d8660d869b, job=node-test-pull-request, status=failure)
    err: {
      "code": "400",
      "status": "Bad Request",
      "message": "Empty value for parameter 'number': undefined"
    }

I've put temporary extra verbose logging in place when the PR number is undefined for some reason, it'll dump out the git ref sent from Jenkins.

phillipj added a commit to phillipj/github-bot that referenced this pull request Jun 10, 2018
This is an improvement of a recent attemt to ignore any Jenkins build
status updates that was *not* related to pull requests.

While looking at the logs after the last fix was merged, it surprised
me that we still got those kinds of errors popping up:

```
22:24:02.994 ERROR bot: Got error when retrieving GitHub commits for PR (req_id=3741a210-6cec-11e8-a3a3-e194f9df710c, pr=master, job=node-test-commit-plinux, status=success)
    err: {
      "code": "400",
      "status": "Bad Request",
      "message": "Invalid value for parameter 'number': master"
    }
```

Looking closely on the info included in that error log, made it clear it
could be an issue on builds that had *ended*. Digging into the fix
that was recently pushed, I discovered that fix only applied to for statuses
Jenkins pushes to the bot when it *starts* builds.

Applying the previous fix to the bot endpoint that handles *ended* Jenkins
builds as well, should make these error logs disappear.

Refs nodejs#177
phillipj added a commit that referenced this pull request Jun 11, 2018
This is an improvement of a recent attemt to ignore any Jenkins build status updates that was *not* related to pull requests.

While looking at the logs after the last fix was merged, it surprised me that we still got those kinds of errors popping up:

```
22:24:02.994 ERROR bot: Got error when retrieving GitHub commits for PR (req_id=3741a210-6cec-11e8-a3a3-e194f9df710c, pr=master, job=node-test-commit-plinux, status=success)
    err: {
      "code": "400",
      "status": "Bad Request",
      "message": "Invalid value for parameter 'number': master"
    }
```

Looking closely on the info included in that error log, made it clear it could be an issue on builds that had *ended*. Digging into the fix that was recently pushed, I discovered that fix only applied to for statuses Jenkins pushes to the bot when it *starts* builds.

Applying the previous fix to the bot endpoint that handles *ended* Jenkins builds as well, should make these error logs disappear.

Refs #177

/cc @nodejs/github-bot
phillipj added a commit that referenced this pull request Jun 12, 2018
Still seems like we're getting some unexpected git refs provided by
Jenkins when it pushes build statuses to the bot, and the bot tries
to find related commits for that PR:

```
05:08:53.952 ERROR bot: Got error when retrieving GitHub commits for PR (req_id=f0167340-6ded-11e8-b1ce-abe3a60bd0f4, pr=135, job=node-test-linux-linked-debug, status=success)
    err: {
      "code": 404,
      "status": "Not Found",
      "message": "{\"message\":\"Not Found\",\"documentation_url\":\"https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request\"}"
    }
```

This trivial change includes the git ref Jenkins sends in the JSON payload
so we can hopefully write logic to avoid fetching git commtis for these
seemingly invalid PRs.

Refs #177
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants