Skip to content

Split non-prod GitHub App into separate per-environment apps and new Local environment config#619

Closed
jpablo2002 wants to merge 10 commits intomainfrom
dev/acostajuan/update-config-github-apps
Closed

Split non-prod GitHub App into separate per-environment apps and new Local environment config#619
jpablo2002 wants to merge 10 commits intomainfrom
dev/acostajuan/update-config-github-apps

Conversation

@jpablo2002
Copy link
Copy Markdown
Contributor

Fixes

Splits the shared NonProdGitHubAppClientId into three separate GitHub OAuth apps with dedicated client IDs:

  • PPE (Iv1.b231c327f1eaa229) — existing app, unchanged
  • Dev (Iv23ctTiak9wLCiTcEbr) — new app for the deployed dev service
  • Local (Iv23cttBYzKThF88PiPR) — new app with localhost callback URLs for local development

Changes proposed:

Adds a new Local environment to TunnelServiceProperties across all 5 SDK languages (C#, TypeScript, Go, Java, Rust),
with a "local" case in the Environment() method.

This enables the tunnel service and CLI to use different GitHub apps per environment, so each app can have properly
scoped callback URLs and independent secret rotation.

@jpablo2002 jpablo2002 self-assigned this Apr 22, 2026
@jpablo2002 jpablo2002 changed the title Updated GitHub app ids for new apps and created new config for runnin… Split non-prod GitHub App into separate per-environment apps and new Local environment config Apr 22, 2026
/// GitHub app with localhost callback URLs.
/// </remarks>
public static TunnelServiceProperties Local { get; } = new TunnelServiceProperties(
$"https://{DevDnsName}/",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should this be DevDnsName for local?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It should be fine as is. This is how it used to be for local when it used the Development TunnelServiceProperties. The ServiceUri is a default fallback; in practice, local consumers always override it with an explicit localhost URL (e.g. we override it via DEVTUNNELS_SERVICE=local in the CLI)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I've pushed new changes to add the LocalDnsName to be tunnels.local.api.visualstudio.com:9901

@jpablo2002 jpablo2002 closed this Apr 22, 2026
@jpablo2002
Copy link
Copy Markdown
Contributor Author

Git diffs and generation of files broke and got messy, abandoning and making new PR

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants