GitHub Bots: What and Why ========================= Welcome to the Hands-on: Creating GitHub Bots 🤖 to deal with boring routines! What are GitHub bots? --------------------- Web applications that run automation on GitHub, using the ecosystem of GitHub Apps and its APIs. What can bots do? ----------------- Many things: it can automatically respond to users, apply labels, close issues, create new issues, and even merge pull requests. Use the extensive GitHub APIs and automate your workflow! Why use bots? ------------- By automating your workflow, you can focus on real collaboration, instead of getting stuck doing boring housekeeping things. Example GitHub bots ------------------- Chronographer ''''''''''''' Source code: https://github.com/sanitizers/chronographer-github-app Waits for Pull Request related events, as well as ``check_suite`` and ``check_run`` with ``rerequested`` action. Every time PR is updated, it: - retrieves and parses the PR diff - checks whether it contains additions to changelog fragment files - reports intermediate statuses and the final outcome back to GitHub using Checks API - uses nice visual indication and highlights the details on Checks page - can be used to block PRs where the author forgot to add a change fragment - is a GitHub App, unlocking the ability to use certain APIs - can be used as a GitHub Action the-knight-who-says-ni '''''''''''''''''''''' Source code: https://github.com/python/the-knights-who-say-ni Waits for incoming CPython's pull requests. Each time a pull request is opened, it does the following: - find out the author's info - find out if the author has signed the CLA - if the author has not signed the CLA, notify the author - if the author has signed the CLA, apply the CLA signed Label bedevere-bot '''''''''''' Source code: https://github.com/python/bedevere Performs status checks, identify issues and stages of the pull request. Some tasks that bedevere-bot does: - identify the stage of the pull request, one of: awaiting review, awaiting merge, awaiting change request, awaiting core dev review. - apply labels to pull requests - checks if the PR contains reference to an issue - automatically provide link to the issue in the bug tracker miss-islington '''''''''''''' Source code: https://github.com/python/miss-islington Automatically create backport pull requests and reminds core devs that status checks are completed. In addition, miss-islington can also automatically merge the pull request, and delete merged branch.