Implement "Ship Show Ask" Github Actions in Pull Requests

My team would like to look into formalizing our GitHub workflow to use the “Ship Show Ask” methodology for code review presented on Martin Fowler’s site: Ship / Show / Ask

To do this, I thought it would be cool to label a PR with one of 3 labels (you can guess what those would be, haha) and have GitHub workflows update the PR with the proper semantics for how the PR can be merged.

For instance, with “Ship”, a PR is more of an FYI that code is being merged into a particular branch. If someone created a PR with a label of “pr:ship”, then the PR could be merged without any need for branch protections (if they were setup to required a minimum # of reviews, for example).

If the PR is labeled “pr:ask”, then the action would require a minimum # of reviewers before it could be merged.

I am pretty new to GitHub actions, so I don’t necessarily know if this is even possible as it would be dynamically changing branch protections and PR properties. Presumably that could be done through the GH API, but I am not sure at all how to do that either.

Thoughts?