| #!/usr/bin/env python3 |
| |
| # Copyright 2025 Google LLC |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| import argparse |
| import os |
| import sys |
| |
| import github |
| |
| DNM_LABELS = ["DNM", "DNM (manifest)", "TSC", "Architecture Review", "dev-review"] |
| |
| |
| def parse_args(argv): |
| parser = argparse.ArgumentParser( |
| description=__doc__, |
| formatter_class=argparse.RawDescriptionHelpFormatter, |
| allow_abbrev=False, |
| ) |
| |
| parser.add_argument("-p", "--pull-request", required=True, type=int, help="The PR number") |
| |
| return parser.parse_args(argv) |
| |
| |
| def main(argv): |
| args = parse_args(argv) |
| |
| token = os.environ.get('GITHUB_TOKEN', None) |
| gh = github.Github(token) |
| repo = gh.get_repo("zephyrproject-rtos/zephyr") |
| pr = repo.get_pull(args.pull_request) |
| |
| for label in pr.get_labels(): |
| if label.name in DNM_LABELS: |
| print(f"Pull request is labeled as \"{label.name}\".") |
| print("This workflow fails so that the pull request cannot be merged.") |
| sys.exit(1) |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main(sys.argv[1:])) |