Adjust GitHub branch protection based on risk tracking
Mark a feature as 'high-risk' in your Sheets, and Notis instantly tightens branch protections: require code review, restrict force pushes, add status checks. Mark it 'low-risk', and protections relax.
Trigger
Conditional Format Rule Changed
Triggers when conditional formatting rules change in a Google Spreadsheet. Detects when rules are added, updated, or removed. Uses snapshot-based diffing to detect changes between polls.
Action
Add user access restrictions
Sets/replaces list of users allowed to push to a protected branch; usernames (e.g., `["user1"]`) must be a json array in request body (not schema parameters), an empty array `[]` removes all restrictions.
Why this helps
High-risk features need strict code review but low-risk tweaks don't. Managing branch protections manually means either over-protecting everything or skipping reviews. Risk slips through.
- Branch protections scale with project risk
- Automatic review requirements for critical work
- Reduce code-review overhead for low-risk changes
- Keep compliance rules current without manual updates
Setup
Build it in a few focused steps.
- 1Connect Google Sheets and GitHub to Notis
- 2Create an automation: 'When I flag a feature as high-risk, update branch protection rules'
- 3Select 'Conditional Format Rule Changed' as your trigger (use conditional formatting to flag risk levels)
- 4Define protection rules (e.g., high-risk = require 2 reviews, low-risk = require 1 review)
- 5Test by flagging a feature and confirming GitHub branch rules update
Questions about this workflow
Can I have different protection rules for different branches?
Yes. You can specify which branch to update and what rules apply based on risk level.
Will this interfere with existing branch protections?
Notis updates specific protections you define. It won't overwrite unrelated rules like required status checks from CI systems.
What if a feature is flagged as risky after code is already pushed?
Notis updates the protection rules going forward. Existing PRs follow the rules in place when they were created.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Google Sheets to GitHub. A trigger fires from one place; an action lands in another.
Google Sheets triggers
GitHub actions
Aggregate Metric Changed
Triggers when an aggregate metric (SUM/COUNT/AVG/MIN/MAX) changes in a Google Sheets spreadsheet. This trigger monitors an aggregate calculation on a target column (optionally filtered by a search column/value) and fires when the calculated result changes.
Accept a repository invitation
Accepts a pending repository invitation that has been issued to the authenticated user.
Cell Range Values Changed
Triggers when values in a specified A1 range change in Google Sheets. This trigger monitors a specific cell or range of cells and fires when any values change.
List repositories starred by the authenticated user
Deprecated: lists repositories starred by the authenticated user, including star creation timestamps; use 'list repositories starred by the authenticated user' instead.
Conditional Format Rule Changed
Triggers when conditional formatting rules change in a Google Spreadsheet. Detects when rules are added, updated, or removed. Uses snapshot-based diffing to detect changes between polls.
List stargazers
Deprecated: lists users who have starred a repository; use `list stargazers` instead.
Data Validation Rule Changed
Triggers when data validation rules change (added/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.
Star a repository for the authenticated user
Deprecated: stars a repository for the authenticated user; use `star a repository for the authenticated user` instead.
Developer Metadata Changed
Triggers when developer metadata entries change (new/updated/removed) in a Google Spreadsheet. Uses snapshot-based diffing to detect changes between polls.
Add email for auth user
Adds one or more email addresses (which will be initially unverified) to the authenticated user's github account; use this to associate new emails, noting an email verified for another account will error, while an existing email for the current user is accepted.
Filtered Range Values Changed
Polling trigger that monitors Google Sheets filtered ranges for value changes. Uses snapshot-based diffing to detect when values matching a data filter change. Emits the matched values when changes are detected.
Add app access restrictions
Replaces github app access restrictions for an existing protected branch; requires a json array of app slugs in the request body, where apps must be installed and have 'contents' write permissions.
New Rows in Google Sheet
Simple polling trigger that monitors Google Sheets for new rows. Detects when new rows are added and returns the complete row data. Perfect for triggering any workflow based on new sheet entries.
Add a repository collaborator
Adds a github user as a repository collaborator, or updates their permission if already a collaborator; `permission` applies to organization-owned repositories (personal ones default to 'push' and ignore this field), and an invitation may be created or permissions updated directly.
New Sheet Added in Google Spreadsheet
Polling trigger that detects when a new sheet is added to a Google Spreadsheet.
Add a repository to an app installation
Adds a repository to a github app installation, granting the app access; requires authenticated user to have admin rights for the repository and access to the installation.
Connect any two apps with Notis in the middle.
Not just Google Sheets and GitHub. Any combination from 985+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business GitHub.
