Skip to content
Notis

Apply reviewed team push restrictions without revisiting GitHub settings

Maintain the intended team list in a policy sheet and let Notis update the protected branch once the row is approved.

Trigger

Spreadsheet Row Changed

Triggers when a looked-up spreadsheet row changes. This trigger monitors a specific row (located by searching for a query value within a user-specified range) and fires when the row's values change, when the row appears, or when the row disappears.

Action

Add team access restrictions

Overwrites the list of teams (and their child teams) granted push access to a protected branch; the list of team slugs must be provided in the http post request body.

Why this helps

Branch access policies drift because changes are recorded during review but applying them requires a separate, sensitive configuration task.

  • Keeps reviewed policy and GitHub configuration aligned
  • Reduces delayed security follow-up
  • Centralizes the intended team access list

Setup

Build it in a few focused steps.

  • 1Connect Google Sheets and the GitHub organization in Notis.
  • 2Create an automation and send run reports to a restricted channel.
  • 3Prompt Notis: "When this approved branch-policy row changes, replace the GitHub protected branch's allowed push teams with the listed team slugs."
  • 4Select Spreadsheet Row Changed and test on a controlled branch.

Questions about this workflow

Does this append teams or replace the list?

It replaces the team restriction list, so the approved row should represent the complete intended set.

Are child teams included?

GitHub applies the selected team restrictions with relevant child-team behavior according to the organization hierarchy.

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

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Accept a repository invitation

Accepts a pending repository invitation that has been issued to the authenticated user.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

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.

ActionInstant

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.

TriggerPolling

List stargazers

Deprecated: lists users who have starred a repository; use `list stargazers` instead.

ActionInstant

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.

TriggerPolling

Star a repository for the authenticated user

Deprecated: stars a repository for the authenticated user; use `star a repository for the authenticated user` instead.

ActionInstant

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.

TriggerPolling

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.

ActionInstant

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.

TriggerPolling

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.

ActionInstant

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.

TriggerPolling

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.

ActionInstant

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.

TriggerPolling

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.

ActionInstant

Connect any two apps with Notis in the middle.

Google Sheets and GitHub, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business GitHub.