A Zulip bot that partners people for pair programming practice :)
Pairing Bot interacts through private messages on Zulip.
subscribe
to start getting matched with other Pairing Bot users for pair programmingschedule monday wednesday friday
to set your weekly pairing schedule- In this example, Pairing Bot has been set to find pairing partners for the user on every Monday, Wednesday, and Friday
- The user can schedule pairing for any combination of days in the week
skip tomorrow
to skip pairing tomorrow- This is valid until matches go out at 04:00 UTC
unskip tomorrow
to undo skipping tomorrowstatus
to show your current schedule, skip status, and nameunsubscribe
to stop getting matched entirely- This removes the user from the database. Since logs are anonymous, after unsubscribe Pairing Bot has no record of that user
add-review
to add a publicly viewable review to help other users learn about Pairing Bot.get-reviews
to view the 5 most recent reviews for Pairing Bot. You can pass in an integer param to specify the number of reviews to get back.cookie
to get the most amazing cookie recipe!
- Runs in GCP on App Engine
- Uses Firestore for its database
- Deployed on pushes to the
main
branch with Cloud Build - The database must be prepopulated with two pieces of data: an authentication token (used to validate incoming requests from Zulip), and an API key (used to talk to the Zulip API).
- Zulip bots must have an owner set in Zulip. They may only have one owner at a time. RC Pairing Bot's ownership is given to whoever is working on Pairing Bot at the moment. The current owner is Robert Xu.
- Onboarding, offboarding, and daily pairing matches are all controlled with cron jobs set in Cloud Scheduler.
- Please contact Robert Xu and/or Maren Beam for an overview of Pairing Bot and to gain direct access to this Github repo and Pairing Bot's resources in the Google Cloud.
- You can open a Pull Request for Pairing Bot without contacting the project owners, but that means you'll lose out on the testing environemnt described below!
- Pairing Bot has a test environment where you can validate your changes before changing the main Pairing Bot. It consists of:
- A separate Zulip Bot (Pairing Bot [Test Version]) that you can send commands to.
- A separate GC Project with its database, logging and cron job setup.
- A
dev
branch in Github that automatically deploys pushed changes to the GCP project.
- How to Make Changes to Pairing Bot
- Contact one of the maintainers of Pairing Bot to learn about the project and gain project permissions.
- Make your code changes on the
dev
branch and push to this Github repo. - Check the CloudBuild tab in Google Cloud to make sure that the Pairing Bot project built successfully.
- Test out your changes with the Pairing Bot [Test Version]
- Check the Logs in Google Cloud to make sure your change did not introduce any errors.
- If everything looks good, you can open up a Pull Request comparing
dev
agaistmain
. If you have Git permissions from the maintainers then feel free to merge your changes in!
Pairing Bot is an RC community project.
Your contributions are welcome and encouraged, no matter your prior experience! .