Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a automatic PR-revert utility for failing buildbots #535

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions buildbothammer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# BuildbotHammer

This app automatically creates revert Pull Requests for failing builds in the
CPython project. It monitors Buildbot for failing builds, identifies the
commit that caused the failure, and creates a revert PR on GitHub. It also sends
notifications to Discord.

## Usage

Run the script with:

```
python -m buildbothammer
```

The script will:
1. Check Buildbot for failing builds
2. For each failing build, it will:
- Identify the commit that caused the failure
- Create a new branch in your fork
- Revert the problematic commit
- Create a Pull Request to the main CPython repository
- Send a notification to the configured Discord channel

## Configuration

- `BUILDBOT_API`: The Buildbot API endpoint (default: "http://buildbot.python.org/api/v2")
- `BUILDBOT_URL`: The Buildbot URL for generating links (default: "http://buildbot.python.org/#/")
- `REPO_OWNER`: The owner of the main repository (default: "python")
- `REPO_NAME`: The name of the repository (default: "cpython")
- `FORK_OWNER`: Your GitHub username (default: "$REPO_OWNER")
- `REPO_CLONE_PATH`: The directory for the local clone of the repository
16 changes: 16 additions & 0 deletions buildbothammer/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[project]
name = "buildbothammer"
version = "0.1.0"
description = "Automatic revert failing CPython PRs"
readme = "README.md"
requires-python = ">=3.12"
pablogsal marked this conversation as resolved.
Show resolved Hide resolved
dependencies = [
"requests>=2.32.3",
"pygithub>=2.4.0",
"filelock>=3.16.1",
"aiohttp",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
Loading
Loading