Change:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --As noted in , the lack of an option to create a public repository is by design rather than a bug. In that issue, gave the following reason for omitting the option: I would argue that: two quickpick options instead of one would not significantly complicate the UI. process of making a private repository public is not straightforward, especially when the alternative is to just create it as public in the first place. For reference, here are the required steps: Select "Publish to GitHub private repository" from quickpick and open the repo when finished. <img width="643" alt="Screen Shot 2020-07-12 at 11 26 12 AM" src="https://user-"- <img width="471" alt="Screen Shot 2020-07-12 at 11 27 26 AM" src="https://user-"- Open repository settings on GitHub. <img width="988" alt="Screen Shot 2020-07-12 at 11 34 14 AM" src="https://user-"- Scroll all the way to the bottom of the page (to the "Danger Zone") and click "Change visibility." <img width="942" alt="Screen Shot 2020-07-12 at 11 28 27 AM" src="https://user-"- In the modal, select the "Make public" radio option. Type the full repo name and click "I understand, change repository visibility." <img width="488" alt="Screen Shot 2020-07-12 at 11 28 51 AM" src="https://user-"For me and many others whose primary work is done in public repos, these steps would be completely eliminated if there were an option to create the repo as public in the first place. I don't believe it would be very difficult to implement this feature. Here's a simple solution:
OK sure, feel free to submit a PR.
Will do, thanks!

Discussion:
folder = pick.folder.uri; } <del> let quickpick = vscode.window.createQuickPick<vscode.QuickPickItem & { repo?: string, auth?: 'https' | 'ssh' }>(); </del> <ins> let quickpick = vscode.window.createQuickPick<vscode.QuickPickItem & { repo?: string, auth?: 'https' | 'ssh', isPrivate?: boolean }>(); </ins> quickpick.ignoreFocusOut = true; quickpick.placeholder = 'Repository Name';

quickpick.busy = false; let repo: string | undefined; <ins> let isPrivate: boolean; </ins> const onDidChangeValue = async () => { const sanitizedRepo = sanitizeRepositoryName(quickpick.value);

if (!sanitizedRepo) { quickpick.items = []; } else { <del> quickpick.items = [{ label: `$(repo) Publish to GitHub private repository`, description: `$(github) ${owner}/${sanitizedRepo}`, alwaysShow: true, repo: sanitizedRepo }]; </del> <ins> quickpick.items = [ { label: `$(repo) Publish to GitHub private repository`, description: `$(github) ${owner}/${sanitizedRepo}`, alwaysShow: true, repo: sanitizedRepo, isPrivate: true }, { label: `$(repo) Publish to GitHub public repository`, description: `$(github) ${owner}/${sanitizedRepo}`, alwaysShow: true, repo: sanitizedRepo, isPrivate: false }, ]; </ins> } };

listener.dispose(); repo = pick?.repo; <ins> isPrivate = pick?.isPrivate ?? true; </ins> if (repo) { try {

} const githubRepository = await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, cancellable: false, title: 'Publish to GitHub' }, async progress => { <del> progress.report({ message: 'Publishing to GitHub private repository', increment: 25 }); </del> <ins> progress.report({ message: `Publishing to GitHub ${isPrivate ? 'private' : 'public'} repository`, increment: 25 }); </ins> const res = await octokit.repos.createForAuthenticatedUser({ name: repo!, <del> private: true </del> <ins> private: isPrivate </ins> }); const createdGithubRepository = res.data;