Quality Gate Automation: Linear Status to GitHub Checks
Move an issue to 'In Review' in Linear and Notis automatically requires that the GitHub branch passes linting and tests before merge. Status checks are enforced without manual branch protection updates.
Trigger
Public Team Comment Created
Fires when a new comment is posted on a *public-team* Linear issue. For private teams (lock icon in Linear's sidebar) use `LINEAR_PRIVATE_TEAM_COMMENT_CREATED`.
Action
Add status check contexts
Adds status check contexts (provided in the request body, e.g., `{"contexts": ["new-context"]}`) to a protected branch, requiring these contexts to have been previously reported.
Why this helps
Status changes in Linear should trigger different quality standards (draft items might skip tests, but reviewed items must pass all checks), but GitHub branch rules don't automatically adjust. Engineers merge code that should have been blocked.
- Enforce the right quality standards at the right time automatically
- Prevent low-quality code merges by tying GitHub checks to Linear status
- Reduce manual branch protection management
- Align quality gates with your team's workflow stages
Setup
Build it in a few focused steps.
- 1Connect Linear and GitHub to Notis
- 2Identify which Linear statuses should require which GitHub checks (Review stage might require tests + linting, Draft might skip)
- 3Create an automation: 'When a public Linear issue moves to Review, require GitHub status checks for the associated branch'
- 4Specify checks in your prompt: 'require tests, linting, and security scan'
- 5Set trigger to 'Linear public team issue properties updated'
- 6Test by moving a Linear issue through stages and verifying GitHub branch protection updates
Questions about this workflow
How does Notis link a Linear issue to a GitHub branch?
Usually by linking in the Linear issue description or PR title. If that link is missing, your automation can prompt you to confirm the branch before applying checks.
Can different status stages have different check requirements?
Yes. Your automation can specify: 'Draft stage = no checks, In Progress = linting only, In Review = all checks, Done = no new checks'.
What if the checks fail?
GitHub blocks the merge until they pass. Your automation can also notify the team in Slack when a branch can't merge due to failed checks.
Can I remove checks when an issue is marked Done?
Yes. Create a follow-up automation: 'When an issue is completed, allow quick-merge without all status checks' (for backport scenarios).
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Linear to GitHub. A trigger fires from one place; an action lands in another.
Linear triggers
GitHub actions
Comment Received Trigger
Triggered when a comment is received.
Accept a repository invitation
Accepts a pending repository invitation that has been issued to the authenticated user.
Issue Created Trigger
Triggered when a new issue is created.
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.
Issue Updated Trigger
Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.
List stargazers
Deprecated: lists users who have starred a repository; use `list stargazers` instead.
Private Team Comment Created
Fires when a new comment is posted on an issue in a private Linear team (polled with the connected user's token).
Star a repository for the authenticated user
Deprecated: stars a repository for the authenticated user; use `star a repository for the authenticated user` instead.
Private Team Issue Created
Fires when a new issue appears in a private Linear team (polled with the connected user's token).
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.
Private Team Issue Properties Updated
Fires when properties on an issue change in a private Linear team (polled with the connected user's token).
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.
Project Created
Fires when a new Linear project is created. Covers projects in both public and private teams — polls with the connected user's token, so visibility matches what the connected user can see in Linear.
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.
Project Properties Updated
Fires when properties on a Linear project change (status, lead, target date, priority, etc.). Covers projects in both public and private teams — polls with the connected user's token.
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 Linear 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.
