-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Release GCM Core with various fixes and new Windows user-installer #206
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Update the readme and FAQ documentation to include Linux preview support, and elevate macOS and Windows from "preview" to GA.
Update readme and FAQs and drop preview wording
Automatically create a new PR to update the winget package for GCM Core on release.
winget: update winget pkg on release
Add documentation regarding the upcoming removal of user/pass access to the authorizations API on GitHub. Outline how to upgrade to GCM Core from GCM4W to fix.
Update the GitHub auth change document PAT link to auto-select the `repo`, `gist`, and `workflow` scopes.
Update GitHub auth change document PAT link
Fix a bug where the 'Allow Windows Integrated Authentication' setting was evaluating to `false` when unset, rather than `true` as per design and the documentation.
Fix bug where Allow Windows Integrated Authentication setting default wrong
Update the macOS installer build to also create a distribution/product archive package, that contains the flat component package we were already building. The product archive allows us to do things like set welcome and conclusion messages, titles, and display a license (like the Windows installers do). In the new welcome and conclusion screens we include helpful links and instructions on how to uninstall GCM Core, and how to configure it for other users on the system. The macOS installer continues to install in a global location, but only configure the user's global Git configuration.
Ensure that we are correclty quoting arguments to Git configuration commands. We must ensure double-quotes are escaped correclty, and also any runs of back-slashes ('\') are preserved _UNLESS_ a double-quote ('"') follows.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
The .github/run_esrp_signing.py script is executed on the signing machines. This mostly accumulates a set of JSON input files before running the ESRP signing tool that was securely downloaded. Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
This launches a job that downloads the ESRP signing tool client, then loads it with the necessary information for our signing abilities. Finally, it publishes our signed .deb to the build artifacts. Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Update the configure and unconfigure actions to now set the full file path to GCM Core, rather than rely on `manager-core` resolving to `git-credential-manager-core` on the PATH by Git. This was a problem because Git for Windows now bundles GCM Core, and even if a standalone install of GCM Core was present on the system with a higher version, since the bundled copy is found on the PATH before anything else, Git was always picking the old one. The change to using full paths helps fix this issue, and also another issue on macOS where sometimes the /usr/local/bin directory is not on the PATH (such as for the root user, or during a postinstall script for a flat-package [.pkg] file).
Split the Windows installer into two versions: a single-user installer, and a system-wide installer. The old installer installed in Program Files (x86) and set the system Git configuration, which is now what the system-flavoured installer does. The new single-user installer places files in %LOCALAPPDATA% and updates the ~/.gitconfig (global) user Git configuration instead. The benefit of the single-user installer is that it does not require an administrator to install it, and doesn't affect other users of the system.
Update the configure command to set the full path to GCM Core
Update the Mac installer to make a product archive package/installer
Fix the incorrect wording of the macOS installer welcome screen. We do not configure different gitconfig files depending on the install mode - we always update the current user's gitconfig only.
Fix incorrect wording of installer welcome msg
This adds a new workflow build-installers.yml, where hopefully we can either migrate all installer builds in the future (or rename and split them across the platforms.) This workflow is heavily dependent on a lot of internal Microsoft infrastructure. What we have so far results in a GPG signed .deb for GCM-Core. This is currently uploaded as an artifact on the workflow itself but it not yet published. The 3rd and last build job yet to be added is using setting up yet another internal tool with the right security to use our internal publishing service. This does the signing, but does not actually publish the package to the Microsoft package feed. Replaces #170.
Split Windows installer in to user/system flavours
Rather than set the helper to be _only_ GCM Core in the system configuration when called with `(un)configure --system`, we do what we are already doing in the user-case. We only append an empty ("") reset entry, and then the GCM full path entry. This means on uninstall of the standalone GCM (be that the system or user install), we restore the previous entry, always.
Add the --get-all and --add Git configuration commands, and use them in place of --get-regexp and --replace-all where applicable.
If we have empty helper entries after GCM, then we should attempt to reconfigure to put GCM back "at the front", since otherwise it's effectively being disabled by those subsequent empty entries.
Only clear the useHttpPath=true option on calls to unconfigure if the "manager-core" option is not present and we're in the system config on a Windows platform. This would be the case for the bundled GCM Core in Git for Windows, which we would break by removing this option.
Since --null means that each config entry terminates with a null character ('\0') we are left with one extra entry in the array after splitting the string. This is NOT a real entry and we shouldn't return it from the method.
See [1] for more information. [1] https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/ Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
…running workflows See [1] for more information. [1] https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
this caused the preceding argument to fail due to lack of separation between args
Fix missing space in username input
Make the system installer always append GCM Core entries, not outright set/replace existing values (and fix a typo)
derrickstolee
approved these changes
Nov 2, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes: