Skip to content

feat(autofix): Add GitHub Copilot agent provider UI#106290

Merged
JoshFerge merged 14 commits intomasterfrom
jferg/github-copilot-frontend
Jan 21, 2026
Merged

feat(autofix): Add GitHub Copilot agent provider UI#106290
JoshFerge merged 14 commits intomasterfrom
jferg/github-copilot-frontend

Conversation

@JoshFerge
Copy link
Member

@JoshFerge JoshFerge commented Jan 14, 2026

Summary

  • Add frontend support for GitHub Copilot as a coding agent provider
  • New CodingAgentProvider enum value for GitHub Copilot
  • GitHub Copilot integration CTA component
  • Update coding agent card to display Copilot branding
  • Settings page integration for Copilot setup

Note that this only contains changes for the non-explorer autofix, explorer autofix changes to be done in a follow up PR. Auth works differently and is per user. if a user is not authed for github copilot, we'll redirect them to our oauth flow for github copilot which has already been built.
Screenshot 2026-01-20 at 9 45 00 PM
Screenshot 2026-01-20 at 9 45 12 PM
Screenshot 2026-01-20 at 9 48 03 PM

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jan 14, 2026
Add frontend support for GitHub Copilot as a coding agent provider:
- New CodingAgentProvider enum value for GitHub Copilot
- GitHub Copilot integration CTA component
- Update coding agent card to display Copilot branding
- Settings page integration for Copilot setup
- Use optional chaining for cursorIntegration checks
- Add missing styled components and imports in codingAgentCard
Update type to allow id: string | null and filter out integrations
without IDs when building dropdown items.
The preference storage format changed from cursor: to agent: prefix.
@JoshFerge
Copy link
Member Author

@sentry review

@JoshFerge
Copy link
Member Author

bugbot review

cursor[bot]

This comment was marked as outdated.

Support both 'agent:' (new) and 'cursor:' (legacy) prefixes when
reading preferences so existing users don't lose their settings.
New preferences are written with 'agent:' prefix.
Add github_copilot -> github alias in PluginIcon's PLUGIN_ICONS map
and remove the getPluginIdForProvider helper function.
@JoshFerge JoshFerge force-pushed the jferg/github-copilot-frontend branch from c9fe05b to 4ee4a21 Compare January 21, 2026 02:02
Add TODO for proper GitHub Copilot support. For now, filter out
integrations without IDs since the callback expects a number.
Update frontend feature flag to match backend:
`integrations-github-copilot-agent`
</Heading>
<Text>
{tct(
'GitHub Copilot integration is installed. You can trigger GitHub Copilot from Issue Fix to create pull requests. [docsLink:Read the docs] to learn more.',
Copy link
Member Author

Choose a reason for hiding this comment

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

TODO: update this copy

Copy link
Member Author

Choose a reason for hiding this comment

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

(can be done in a follow up, the flag is not on for anyone atm)

@JoshFerge JoshFerge marked this pull request as ready for review January 21, 2026 02:55
@JoshFerge JoshFerge requested review from a team as code owners January 21, 2026 02:55
Copy link
Contributor

@cursor cursor bot left a comment

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 and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

}));
// Build dropdown items for coding agent integrations (filter out those without IDs for now)
const dropdownItems = codingAgentIntegrations
.filter(integration => integration.id !== null)
Copy link
Contributor

Choose a reason for hiding this comment

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

Dropdown renders empty when only null-id integrations exist

Medium Severity

The condition at line 127 checks !codingAgentIntegrations?.length to decide whether to render the dropdown, but line 142 filters out integrations with id === null. If a user only has GitHub Copilot installed (which has id: null), the length check passes but dropdownItems becomes an empty array after filtering. This results in a dropdown trigger button that opens to display an empty menu with no options.

Fix in Cursor Fix in Web

Copy link
Member Author

Choose a reason for hiding this comment

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

this is for the explorer based autofix which i’ll implement in a follow up

@JoshFerge JoshFerge merged commit b25a270 into master Jan 21, 2026
55 checks passed
@JoshFerge JoshFerge deleted the jferg/github-copilot-frontend branch January 21, 2026 22:52
@github-actions github-actions bot locked and limited conversation to collaborators Feb 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants