Another small update (#65)

Here is a PR with a long description. The following is one long line

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.

Here is another version with lines broken manually

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.
1 file changed
tree: 6440b7c3229a5720e63a2ad8ea55adf7cb4a3ca9
  1. .github/
  2. bin/
  3. checkstyle/
  4. clients/
  5. committer-tools/
  6. config/
  7. connect/
  8. coordinator-common/
  9. core/
  10. docker/
  11. docs/
  12. examples/
  13. generator/
  14. gradle/
  15. group-coordinator/
  16. jmh-benchmarks/
  17. licenses/
  18. metadata/
  19. raft/
  20. release/
  21. server/
  22. server-common/
  23. share-coordinator/
  24. shell/
  25. storage/
  26. streams/
  27. test-common/
  28. tools/
  29. transaction-coordinator/
  30. trogdor/
  31. vagrant/
  32. webhook-payloads/
  33. .asf.yaml
  34. .gitignore
  35. BATCH2
  36. build.gradle
  37. committers.txt
  38. config.yml
  39. CONTRIBUTING.md
  40. doap_Kafka.rdf
  41. flaky_test_report.log
  42. gradle.properties
  43. gradlew
  44. gradlewAll
  45. HEADER
  46. LICENSE
  47. LICENSE-binary
  48. NOTICE
  49. NOTICE-binary
  50. PARALLEL1
  51. PARALLEL2
  52. PARALLEL3
  53. pr-check.sh
  54. print.awk
  55. PULL_REQUEST_TEMPLATE.md
  56. queue-check.sh
  57. README.md
  58. settings.gradle
  59. TEST
  60. test.html
  61. Vagrantfile
  62. webhook-receive.py
  63. wrapper.gradle
README.md

Merge Queue Testing for Apache Kafka

The purpose of this repository is to evaluate Github's merge queue feature in the context of an Apache project.

See https://issues.apache.org/jira/browse/LEGAL-599 for additional context.

Testing with live GitHub events

Follow the instructions here to install smee: https://docs.github.com/en/webhooks/testing-and-troubleshooting-webhooks/testing-webhooks

We need a Python virtualenv for running a local server.

python3 -m venv venv
source venv/bin/activate

Download the quart framework https://github.com/apache/infrastructure-asfquart/ and install it into the virtualenv we just made.

Now, we can start the SMEE client to start receiving events from GitHub.

smee -u https://smee.io/wfaiAis5XU4SHXrC -t http://localhost:3000/webhook

This will receive events from the SMEE proxy which this repository is sending its webhooks to. The events will be forwarded to a local server listening on 3000

Start the Python webhook receiver on 3000 to receive the forwarded events.

python webhook-receiver.py

Generate some events in this repository (open pull request, merge pull request, etc)

Testing with sample GitHub events

Three event payloads are included in this repo. This can be used to simulate webhooks coming from GitHub.

curl -X POST http://localhost:3000/webhook \
     -H "Content-Type: application/json" \
     -H "X-Github-Event: pull_request" \
     --data-binary "@webhook-payloads/pull_request_dequeued.json"

The three JSON payloads located in webhook-payloads require a cooresponding X-Github-Event header.

  • pull_request_dequeued: X-Github-Event: pull_request
  • pull_request_enqueued: X-Github-Event: pull_request
  • merge_group: X-Github-Event: merge_group