Skip to content

Commit 54521cc

Browse files
authored
Merge pull request #52 from microsoft/master
Merge master to release
2 parents 4bcb796 + fb457a1 commit 54521cc

File tree

111 files changed

+7441
-620
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+7441
-620
lines changed

.azure-pipelines/continuous-integration.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jobs:
1111
vmImage: vs2017-win2016
1212
steps:
1313
- template: templates/windows/compile.yml
14+
- template: templates/windows/pack.yml
1415

1516
- job: osx
1617
displayName: macOS

.azure-pipelines/pull-request.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jobs:
1111
vmImage: vs2017-win2016
1212
steps:
1313
- template: templates/windows/compile.yml
14+
- template: templates/windows/pack.yml
1415

1516
- job: osx
1617
displayName: macOS

.azure-pipelines/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jobs:
1111
name: VSEng-MicroBuildVS2017
1212
steps:
1313
- template: templates/windows/compile.yml
14+
- template: templates/windows/pack.yml
1415

1516
- job: osx_step1
1617
displayName: macOS (Build & Layout)

.azure-pipelines/templates/osx/pack.signed/step1-layout.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ steps:
1111
- task: PublishPipelineArtifact@0
1212
displayName: Upload symbols
1313
inputs:
14-
artifactName: 'Symbols.Mac'
14+
artifactName: 'tmp.macsymbols'
1515
targetPath: '$(Build.StagingDirectory)/symbols'

.azure-pipelines/templates/osx/pack.signed/step4-signpack.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,21 @@ steps:
3737
artifactName: 'tmp.macpayload_signed'
3838
downloadPath: '$(Build.StagingDirectory)\payload'
3939

40+
- task: DownloadPipelineArtifact@1
41+
displayName: Download symbols
42+
inputs:
43+
buildType: 'current'
44+
artifactName: 'tmp.macsymbols'
45+
downloadPath: '$(Build.StagingDirectory)\symbols'
46+
4047
- script: |
4148
xcopy "$(Build.StagingDirectory)\pkg\*.pkg" "$(Build.StagingDirectory)\publish\"
4249
xcopy "$(Build.StagingDirectory)\payload" "$(Build.StagingDirectory)\publish\payload\"
50+
xcopy "$(Build.StagingDirectory)\symbols" "$(Build.StagingDirectory)\publish\payload.sym\"
4351
displayName: Prepare final build artifact
4452
4553
- task: PublishPipelineArtifact@0
46-
displayName: Upload signed package and payload
54+
displayName: Publish signed installer artifacts
4755
inputs:
4856
artifactName: 'Installer.Mac.Signed'
4957
targetPath: '$(Build.StagingDirectory)\publish'
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
steps:
2+
- script: |
3+
xcopy "out\windows\Installer.Windows\bin\$(configuration)\net461" "$(Build.StagingDirectory)\publish\"
4+
xcopy "out\windows\Payload.Windows\bin\$(configuration)\net461" "$(Build.StagingDirectory)\publish\payload\"
5+
mkdir "$(Build.StagingDirectory)\publish\payload.sym\"
6+
move "$(Build.StagingDirectory)\publish\payload\*.pdb" "$(Build.StagingDirectory)\publish\payload.sym\"
7+
displayName: Prepare final build artifact
8+
9+
- task: PublishPipelineArtifact@0
10+
displayName: Publish unsigned installer artifacts
11+
condition: and(succeeded(), ne(variables['SignType'], 'real'))
12+
inputs:
13+
artifactName: 'Installer.Windows.Unsigned'
14+
targetPath: '$(Build.StagingDirectory)\publish'
15+
16+
- task: PublishPipelineArtifact@0
17+
displayName: Publish signed installer artifacts
18+
condition: and(succeeded(), eq(variables['SignType'], 'real'))
19+
inputs:
20+
artifactName: 'Installer.Windows.Signed'
21+
targetPath: '$(Build.StagingDirectory)\publish'

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<RepoPath>$(MSBuildThisFileDirectory)</RepoPath>
1818
<RepoSrcPath>$(RepoPath)src\</RepoSrcPath>
1919
<RepoOutPath>$(RepoPath)out\</RepoOutPath>
20+
<RepoAssetsPath>$(RepoPath)assets\</RepoAssetsPath>
2021
</PropertyGroup>
2122

2223
<ItemGroup>

Git-Credential-Manager.sln

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,26 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Authentication.He
3535
EndProject
3636
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer.Mac", "src\osx\Installer.Mac\Installer.Mac.csproj", "{74FA0AA4-B5C1-4F3B-B182-277FC2D50715}"
3737
EndProject
38+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Authentication.Helper.Windows", "src\windows\GitHub.Authentication.Helper.Windows\GitHub.Authentication.Helper.Windows.csproj", "{47A55897-B044-4508-B0FD-85B3947AF842}"
39+
EndProject
40+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.UI", "src\windows\GitHub.UI\GitHub.UI.csproj", "{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}"
41+
EndProject
42+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer.Windows", "src\windows\Installer.Windows\Installer.Windows.csproj", "{85903170-9E52-4B53-A6E4-3F416F684FAE}"
43+
EndProject
44+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Payload.Windows", "src\windows\Payload.Windows\Payload.Windows.csproj", "{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}"
45+
EndProject
46+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "assets", "assets", "{65E53644-7FB7-4EC2-8C41-4356F7A4C0C4}"
47+
ProjectSection(SolutionItems) = preProject
48+
assets\gcm-transparent.png = assets\gcm-transparent.png
49+
assets\gcmicon.ico = assets\gcmicon.ico
50+
assets\gcmicon128.bmp = assets\gcmicon128.bmp
51+
assets\gcmicon16.bmp = assets\gcmicon16.bmp
52+
assets\gcmicon256.bmp = assets\gcmicon256.bmp
53+
assets\gcmicon32.bmp = assets\gcmicon32.bmp
54+
assets\gcmicon64.bmp = assets\gcmicon64.bmp
55+
assets\gcmweb.png = assets\gcmweb.png
56+
EndProjectSection
57+
EndProject
3858
Global
3959
GlobalSection(SolutionConfigurationPlatforms) = preSolution
4060
Debug|Any CPU = Debug|Any CPU
@@ -173,6 +193,38 @@ Global
173193
{74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.Release|Any CPU.ActiveCfg = Release|Any CPU
174194
{74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU
175195
{74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU
196+
{47A55897-B044-4508-B0FD-85B3947AF842}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
197+
{47A55897-B044-4508-B0FD-85B3947AF842}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU
198+
{47A55897-B044-4508-B0FD-85B3947AF842}.MacRelease|Any CPU.ActiveCfg = Release|Any CPU
199+
{47A55897-B044-4508-B0FD-85B3947AF842}.Release|Any CPU.ActiveCfg = Release|Any CPU
200+
{47A55897-B044-4508-B0FD-85B3947AF842}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU
201+
{47A55897-B044-4508-B0FD-85B3947AF842}.WindowsDebug|Any CPU.Build.0 = Debug|Any CPU
202+
{47A55897-B044-4508-B0FD-85B3947AF842}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU
203+
{47A55897-B044-4508-B0FD-85B3947AF842}.WindowsRelease|Any CPU.Build.0 = Release|Any CPU
204+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
205+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU
206+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.MacRelease|Any CPU.ActiveCfg = Release|Any CPU
207+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.Release|Any CPU.ActiveCfg = Release|Any CPU
208+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU
209+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.WindowsDebug|Any CPU.Build.0 = Debug|Any CPU
210+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU
211+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50}.WindowsRelease|Any CPU.Build.0 = Release|Any CPU
212+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
213+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
214+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU
215+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.WindowsDebug|Any CPU.Build.0 = Debug|Any CPU
216+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU
217+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.MacRelease|Any CPU.ActiveCfg = Release|Any CPU
218+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU
219+
{85903170-9E52-4B53-A6E4-3F416F684FAE}.WindowsRelease|Any CPU.Build.0 = Release|Any CPU
220+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
221+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.Release|Any CPU.ActiveCfg = Release|Any CPU
222+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU
223+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.WindowsDebug|Any CPU.Build.0 = Debug|Any CPU
224+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU
225+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.MacRelease|Any CPU.ActiveCfg = Release|Any CPU
226+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU
227+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549}.WindowsRelease|Any CPU.Build.0 = Release|Any CPU
176228
EndGlobalSection
177229
GlobalSection(SolutionProperties) = preSolution
178230
HideSolutionNode = FALSE
@@ -193,6 +245,10 @@ Global
193245
{3D279E2D-E011-45CF-8EA8-3D71D1300443} = {A7FC1234-95E3-4496-B5F7-4306F41E6A0E}
194246
{206430B1-CEED-4C84-8D49-D0A399632202} = {3D279E2D-E011-45CF-8EA8-3D71D1300443}
195247
{74FA0AA4-B5C1-4F3B-B182-277FC2D50715} = {3D279E2D-E011-45CF-8EA8-3D71D1300443}
248+
{47A55897-B044-4508-B0FD-85B3947AF842} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9}
249+
{6AD4EA05-44A7-45DD-92C8-6A4C8870FB50} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9}
250+
{85903170-9E52-4B53-A6E4-3F416F684FAE} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9}
251+
{8DBBAB0A-970D-4BE3-958C-8CDC92F76549} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9}
196252
EndGlobalSection
197253
GlobalSection(ExtensibilityGlobals) = postSolution
198254
SolutionGuid = {0EF9FC65-E6BA-45D4-A455-262A9EA4366B}

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ master|[![Build Status](https://mseng.visualstudio.com/AzureDevOps/_apis/build/s
66

77
---
88

9-
[Git Credential Manager Core](https://github.com/Microsoft/Git-Credential-Manager-Core) (GCM Core) is a secure Git credential helper built on [.NET Core](https://microsoft.com/dotnet) that runs on Windows, macOS and Linux.
9+
[Git Credential Manager Core](https://github.com/Microsoft/Git-Credential-Manager-Core) (GCM Core) is a secure Git credential helper built on [.NET Core](https://microsoft.com/dotnet) that runs on Windows and macOS. Linux support is planned, but not yet scheduled.
1010

1111
Compared to Git's [built-in credential helpers]((https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage)) (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring) which provides single-factor authentication support working on any HTTP-enabled Git repository, GCM Core provides multi-factor authentication support for [Azure DevOps](https://dev.azure.com/), Azure DevOps Server (formerly Team Foundation Server), and GitHub.
1212

@@ -16,14 +16,14 @@ The long-term goal of GCM Core is to converge the .NET Framework-based [Git Cred
1616

1717
### Current status
1818

19-
GCM Core is currently in preview for the macOS platform only, with a Windows and Linux preview following in due course. Until that time we recommend Windows users to continue to use GCM Windows, and Linux users to use preferably SSH or Java GCM.
19+
GCM Core is currently in preview only for macOS, with a Windows preview following soon. Until that time we recommend Windows users to continue to use GCM Windows. Linux support is planned, but not yet scheduled. For now, we recommend [SSH for authentication to Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops).
2020

2121
Feature|Windows|macOS|Linux
22-
-|-|-|-
22+
-|:-:|:-:|:-:
2323
Installer/uninstaller||&#10003;|
2424
Secure platform credential storage|&#10003;<br/>Windows Credential Manager|&#10003;<br/>macOS Keychain|
2525
Multi-factor authentication support for Azure DevOps|&#10003;|&#10003;|
26-
Two-factor authentication support for GitHub|&#10003;\*|&#10003;\*|&#10003;\*
26+
Two-factor authentication support for GitHub|&#10003;|&#10003;\*|&#10003;\*
2727
Two-factor authentication support for BitBucket|||
2828
Windows Integrated Authentication (NTLM/Kerberos) support|&#10003;|_N/A_|_N/A_
2929
Basic HTTP authentication support|&#10003;|&#10003;|&#10003;
@@ -34,15 +34,20 @@ Basic HTTP authentication support|&#10003;|&#10003;|&#10003;
3434

3535
### Planned features
3636

37-
- [ ] Windows and Linux installers
37+
- [ ] Proxy support
38+
- [ ] Windows installer
3839
- [ ] Improved GitHub support (platform-native UI)
3940
- [ ] BitBucket
40-
- [ ] Proxy support
41+
- [ ] Linux installer
4142

4243
## Download and Install
4344

4445
To use GCM Core, you can download the [latest installer](https://github.com/Microsoft/Git-Credential-Manager-Core/releases/latest) for your platform. To install, double-click installation package and follow the instructions presented.
4546

47+
### Git Credential Manager for Mac and Linux (Java-based GCM)
48+
49+
If you have an existing installation of the 'Java GCM' on macOS and you have installed this using Homebrew, this installation will be unlinked (`brew unlink git-credential-manager`) when GCM Core is installed. Additionally any symlinks or files previously located at `/usr/local/bin/git-credential-manager` will be replaced with a GCM Core symlink.
50+
4651
## How to use
4752

4853
You don't! GCM gets called when Git needs credentials for an operation. For example, when pushing (`git push`) to [Azure DevOps](https://dev.azure.com), it automatically opens a window and initializes an OAuth2 flow to get your personal access token.

assets/gcm-transparent.png

6.92 KB
Loading

0 commit comments

Comments
 (0)