Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

[wip] Add manifest and overview for VS Marketplace #2111

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 10 additions & 11 deletions GitHubVS.sln
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Meta", "Meta", "{72036B62-2FA6-4A22-8B33-69F698A18CF1}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
marketplace\overview.md = marketplace\overview.md
marketplace\publishManifest.json = marketplace\publishManifest.json
README.md = README.md
EndProjectSection
EndProject
Expand Down Expand Up @@ -135,7 +137,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InstallAndStart", "test\Lau
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.TeamFoundation.16", "src\GitHub.TeamFoundation.16\GitHub.TeamFoundation.16.csproj", "{F08BD4BC-B5DF-4193-9B01-6D0BBE101BD7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Services.Vssdk.UnitTests", "test\GitHub.Services.Vssdk.UnitTests\GitHub.Services.Vssdk.UnitTests.csproj", "{65542DEE-D3BE-4810-B85A-08E970413A21}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitHub.Services.Vssdk.UnitTests", "test\GitHub.Services.Vssdk.UnitTests\GitHub.Services.Vssdk.UnitTests.csproj", "{65542DEE-D3BE-4810-B85A-08E970413A21}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "marketplace", "marketplace", "{3F96C12D-10E3-4F43-B418-C5F31272D568}"
ProjectSection(SolutionItems) = preProject
marketplace\Publish-Vsix.ps1 = marketplace\Publish-Vsix.ps1
marketplace\Publish.ps1 = marketplace\Publish.ps1
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -241,14 +249,6 @@ Global
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.Release|Any CPU.Build.0 = Release|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
{41A47C5B-C606-45B4-B83C-22B9239E4DA0}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.Release|Any CPU.Build.0 = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.ReleaseWithoutVsix|Any CPU.ActiveCfg = Release|Any CPU
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{161DBF01-1DBF-4B00-8551-C5C00F26720D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{161DBF01-1DBF-4B00-8551-C5C00F26720D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{161DBF01-1DBF-4B00-8551-C5C00F26720D}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -475,8 +475,6 @@ Global
{F08BD4BC-B5DF-4193-9B01-6D0BBE101BD7}.ReleaseWithoutVsix|Any CPU.Build.0 = Release|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.DebugCodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.DebugCodeAnalysis|Any CPU.Build.0 = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.DebugWithoutVsix|Any CPU.ActiveCfg = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.DebugWithoutVsix|Any CPU.Build.0 = Debug|Any CPU
{65542DEE-D3BE-4810-B85A-08E970413A21}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -515,6 +513,7 @@ Global
{C6E8D1E1-FAAC-4E02-B6A1-6164EC5E704E} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{E899B03C-6E8E-4375-AB65-FC925D721D8B} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{65542DEE-D3BE-4810-B85A-08E970413A21} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
{3F96C12D-10E3-4F43-B418-C5F31272D568} = {7B6C5F8D-14B3-443D-B044-0E209AE12BDF}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {556014CF-5B35-4CE5-B3EF-6AB0007001AC}
Expand Down
7 changes: 6 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,9 @@ steps:
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.SourcesDirectory)\build\Release\GitHub.VisualStudio.vsix'
artifactName: 'vsix'
artifactName: 'vsix'

- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.SourcesDirectory)\marketplace'
artifactName: 'marketplace'
35 changes: 35 additions & 0 deletions marketplace/Publish-Vsix.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[CmdletBinding(SupportsShouldProcess=$true)]
param (
[parameter(Mandatory=$true,
HelpMessage="Publisher name which must match publisher in the manifest")]
[string] $publisherName
,
[parameter(Mandatory=$true,
HelpMessage="Token with Organization: All accessible organizations, Selected scopes: Marketplace (publish)")]
[string] $personalAccessToken
,
[parameter(Mandatory=$true,
HelpMessage="Path to the .vsix file for publishing")]
[string] $payload
,
[parameter(Mandatory=$true,
HelpMessage="Path to the publish manifest .json file")]
[string] $publishManifest = "$PSScriptRoot\publishManifest.json"
)

Install-Module -Name VSSetup -RequiredVersion 2.2.5 -Scope CurrentUser -Force
Import-Module -Name VSSetup -Version 2.2.5

$VSSetupInstance = Get-VSSetupInstance | Select-VSSetupInstance -Product * -Require 'Microsoft.VisualStudio.Component.VSSDK'
$VSInstallDir=$VSSetupInstance.InstallationPath
$VsixPublisher="$VSInstallDir\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe"

if ($PSCmdlet.ShouldProcess("VsixPublisher.exe login -publisherName $publisherName -personalAccessToken $personalAccessToken", "Login"))
{
& $VsixPublisher login -publisherName $publisherName -personalAccessToken $personalAccessToken
}

if ($PSCmdlet.ShouldProcess("VsixPublisher.exe publish -payload $payload -publishManifest $publishManifest", "Publish"))
{
& $VsixPublisher publish -payload $payload -publishManifest $publishManifest
}
15 changes: 15 additions & 0 deletions marketplace/Publish.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[CmdletBinding(SupportsShouldProcess=$true)]
param (
[parameter(Mandatory=$true,
HelpMessage="Create token using https://dev.azure.com/github-editor-tools/_usersSettings/tokens?action=edit with Organization: All accessible organizations, Selected scopes: Marketplace (publish)")]
[string] $personalAccessToken
,
[parameter(Mandatory=$true,
HelpMessage="Path to the .vsix file for publishing")]
[string] $payload
)

$publisherName = "GitHub"
$publishManifest ="$PSScriptRoot\publishManifest.json"

& $PSScriptRoot\Publish-Vsix.ps1 -WhatIf:([bool]$WhatIfPreference.IsPresent) -publisherName:$publisherName -personalAccessToken:$personalAccessToken -payload:$payload -publishManifest:$publishManifest
26 changes: 26 additions & 0 deletions marketplace/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
GitHub Extension for Visual Studio

The [GitHub Extension for Visual Studio](https://visualstudio.github.com/) makes it easy to connect to and work with your repositories on [GitHub](https://github.com/) and [GitHub Enterprise](https://enterprise.github.com/) from directly within Visual Studio 2015 or newer. Clone existing repositories or create new ones and start collaborating!

For more information about the extension, visit [https://visualstudio.github.com/](https://visualstudio.github.com/).

For feedback and bug reports, please email [support@github.com](mailto:support@github.com).

## Features

1. **Connect** - From the Team Explorer section, click the _Connect..._ button in the GitHub invitation section to login to the extension. The extension supports two-factor authentication (2fa) with GitHub and stores credentials in the Windows Credential store so that Git Operations within Visual Studio work with your GitHub repositories. The extension also supports logging into a GitHub Enterprise instance.
2. **Clone** - Once connected, click on the _Clone_ button to list all repositories that you have access to on GitHub.
3. **Create** - The create dialog lets you create a repository on github.com and locally that are connected together.
4. **Publish** - For a local-only repository, click on the Sync navigation item to get the GitHub publish control. This make it quick to publish your local work up to GitHub.
5. **Open in Visual Studio** - once you log-in with the extension, github.com will show a new button next to repositories labeled "Open in VisualStudio." Click on the button to clone the repository to Visual Studio.
6. **Create Gist** - Create gists by using the GitHub context menu when you right-click on selected text
7. **Open/Link to GitHub** - Easily open on GitHub or share a link to the code you're working on by using the GitHub context menu.
8. **Pull Requests** - View your repository's Pull Requests and create new ones from the _Pull Requests_ button in the Team Explorer Home
9. **See Pull Request diffs** - See all Pull Request changes as individual diff views and open changed files directly from the Pull Request details view
10. **Review Pull Requests** - Start a review and submit a review that comments, approves, or request changes to the Pull Request
11. **Inline Comments** - Add review comments to the Pull Request changes you're reviewing directly from the VS diff view
12. **Fork** - From Team Explorer Home, fork a repository you have already cloned.

## Requirements

Visual Studio 2015 and above
13 changes: 13 additions & 0 deletions marketplace/publishManifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "http://json.schemastore.org/vsix-publish",
"categories": [ "coding", "source control", "team development" ],
"identity": {
"internalName": "GitHubExtensionforVisualStudio"
},
"overview": "overview.md", // Path to the "readme" file that gets uploaded to the Marketplace. Required.
"priceCategory": "free", // Either "free", "trial", or "paid". Defaults to "free".
"publisher": "GitHub", // The name of the publisher. Required.
"private": false, // Specifies whether or not the extension should be public when uploaded. Defaults to false.
"qna": true, // Specifies whether or not the extension should have a Q&A section. Defaults to true.
"repo": "https://github.com/github/VisualStudio" // Not required.
}