Skip to content

feat(web+server): allow to dispatch GitHub Actions workflow from Actions menu - #6288

Open
fcannizzaro wants to merge 4 commits into
pingdotgg:mainfrom
fcannizzaro:feat/github-action-support
Open

feat(web+server): allow to dispatch GitHub Actions workflow from Actions menu#6288
fcannizzaro wants to merge 4 commits into
pingdotgg:mainfrom
fcannizzaro:feat/github-action-support

Conversation

@fcannizzaro

@fcannizzaro fcannizzaro commented Aug 12, 2026

Copy link
Copy Markdown

What Changed

  • Detect project's GitHub Actions workflows with workflow_dispatch triggers.
  • Add a GitHub Actions section to Actions menu for starting workflows on the current thread branch.
  • Support workflow inputs, defaults, choices, booleans, and links to the created run.
  • Add server RPCs, contracts and user documentation.

Why

GitHub Actions workflows currently require leaving T3 Code and manually dispatching runs. This adds a focused workflow dispatch flow within the actions menu while validating workflow definitions and inputs on the server before invoking the authenticated GitHub CLI.

UI Changes

Kapture.2026-08-12.at.10.39.59.webm

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Adds an operate-scoped RPC that can trigger remote CI/CD via the authenticated GitHub CLI. Scoped to authenticated GitHub projects and existing orchestration auth, but still a meaningful side-effecting mutation.

Overview
Lets users start GitHub Actions workflow_dispatch workflows from the chat header Actions menu on the current thread branch.

Adds server support to scan .github/workflows, parse dispatchable YAML (including inputs/defaults/choices), and run workflows via the authenticated GitHub CLI, exposed as githubWorkflows.list / githubWorkflows.run.

The Actions menu lists available workflows when GitHub is ready. Workflows with inputs open a form dialog; successful runs show a toast with an optional View run link.

Reviewed by Cursor Bugbot for commit 26563a0. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add GitHub Actions workflow dispatch to the chat header Actions menu

  • Adds githubWorkflows.list and githubWorkflows.run WebSocket RPC methods, backed by a new GitHubWorkflowService that reads .github/workflows/*.yml files and runs workflows via the GitHub CLI.
  • Parses workflow_dispatch triggers from workflow YAML files to extract inputs (type, description, required, default, options) using githubWorkflowYaml.ts.
  • Surfaces dispatchable workflows in ProjectScriptsControl under a GitHub Actions group; when no project scripts exist, the button label changes from 'Add action' to 'Actions'.
  • Opens a GitHubWorkflowDialog for workflows with inputs; dispatches immediately for workflows without inputs.
  • On success, shows a toast with an optional 'View run' link to the GitHub Actions run URL.
  • Risk: requires an authenticated GitHub CLI (gh) and only works for repos with a .github/workflows directory.

Macroscope summarized 26563a0.

- Discover and run manual workflows from the chat header
- Support workflow inputs and link to the created run
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cf2deeb3-7733-4788-971d-93b3921e057d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effect service conventions review of the new GitHubWorkflowService. Four findings, all in error modeling and dependency acquisition for the new service; the module layout (Context.Service tag with inline interface, make, layer, namespace imports, yield* GitHubCli.GitHubCli) follows the conventions.

Posted via Macroscope — Effect Service Conventions

Comment thread packages/contracts/src/githubWorkflow.ts Outdated
Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated
Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated
Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated
Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit dbee9c2. Configure here.

Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated
@macroscopeapp

macroscopeapp Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new feature enabling users to dispatch GitHub Actions workflows from the UI, adding new backend services, RPC endpoints with authorization, UI components, and external GitHub CLI integration. New user-facing capabilities require human review.

You can customize Macroscope's approvability policy. Learn more.

Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor finding on error-attribute handling in the new Effect service; the rest of the service definition (namespace imports, Context.Service + inline interface, make, layer, environment-acquired FileSystem/Path/GitHubCli dependencies) follows the conventions.

Posted via Macroscope — Effect Service Conventions

Comment thread apps/server/src/sourceControl/GitHubWorkflowService.ts Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding: the new server-side workflow behavior (dispatch detection/parsing, run-URL extraction, gh argument construction) ships without focused server tests. Error modeling and dependency acquisition flagged in earlier runs now match the sibling sourceControl services and look correct.

Posted via Macroscope — Effect Service Conventions

});
const decodeWorkflowDocument = Schema.decodeUnknownOption(WorkflowDocument);

export function parseDispatchWorkflow(contents: string, filename: string): GitHubWorkflow | null {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds new backend behavior with no focused server tests. parseDispatchWorkflow has several non-trivial branches (on: workflow_dispatch scalar vs. array vs. struct, workflow_dispatch: null, non-dispatch workflows rejected, blank input names skipped, scalar default/options coerced to strings, malformed YAML), and GitHubWorkflowService.ts exports extractRunUrl and workflowRunArguments as pure seams that nothing exercises.

Consider adding a focused test file next to these (e.g. githubWorkflowYaml.test.ts, plus a GitHubWorkflowService test using a test GitHubCli layer to cover the run-URL fallback and the SourceControlProviderError mapping), in line with the sibling sourceControl services that are covered by tests.

Posted via Macroscope — Effect Service Conventions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant