Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cut new GCM release #482

Merged
merged 119 commits into from
Oct 11, 2021
Merged

Cut new GCM release #482

merged 119 commits into from
Oct 11, 2021

Conversation

mjcheetham
Copy link
Collaborator

@mjcheetham mjcheetham commented Oct 8, 2021

Changes:

mminns and others added 30 commits July 12, 2021 11:38
Only attempt to enumerate Azure Repos user bindings in the local Git
configuration, when inside a Git repository.
If application tracing is enabled, also print any exception stack traces
to standard error.
Add UI helpers to .deb package & change install location w/ symlinking
Replicate the behavior of `http.sslCAInfo` (internally, cURL's `cainfo`/
OpenSSL's `cafile` arguments). Implemented by manually comparing the server
certificate with the config-specified CA file.
Only enumerate local Azure Repos user bindings when inside a repository
address feedback from Azure Identity team
Allow a user to force the GCMC to use Basic Auth and/or OAuth for interactions with bitbucket.org.
Issue #329
Remove the unnecessary async keyword from the GetSupportedAuthModes
method's test, and drop the Async suffix from the method name.

This removes a warning from the build of the test assemblies that there
is an async method.
Update copyright information
Remove planned features section, completed feature
Update readme doc to reflect current state of Linux support and features.
Previously the PosixTerminal class used the POSIX termios structure and
tcgetattr/tcsetattr functions for both macOS and Linux systems.

However, it transpires that the definition of the termios flags fields
differs between Mac and Linux. On Linux the fields are unsigned int (4
bytes), but on macOS the fields are unsigned long (8 bytes).

This change splits the termios structure into Mac and Linux flavours and
sets the correct field offsets.
Drop unnecessary async keyword from method in tests
mjcheetham and others added 21 commits October 5, 2021 15:46
Reimplement/readd the WPF-based GitHub horizontal divider and six digit
(2FA code) controls.
Reimplement WPF views for the credential and 2FA GitHub prompts.
The layout is now much simpler, and matches the Avalonia-based UI.
Reimplement WPF views for the Bitbucket credential and OAuth prompts.
The layout is largely unchanged, but now more closely matches the
Avalonia layout/implementation of these views.
Update to the latest version of Avalonia to fix various rendering
problems including, shadow issues on macOS, and DPI issues on macOS.

Fixes #408.
Combine WPF and Avalonia UI view models and commands
Rename the OAuth GitHub authentication mode to Browser to better match
what interaction will happen when selecting this mode. Also prepare for
the introduction of an explicit device code OAuth flow mode.
Consolidate all the UI helper options for the GitHub `prompt` view in to
an `Options` class (rather than bloat the execution handler with more
arguments).

Also fix a bug whereby the GitHub host provider would attempt to invoke
the UI helper with an `--all` option when all authentication modes are
available, but no such option is available!

This option was only available on the old WPF UI helper, and was never
carried forward to the Avalonia UI.
One of the commands for WSL configuration was missing quotes which resulted in invalid configuration.
Implement an explicit OAuth device code authentication mode for the
GitHub host provider. Previously the 'web browser' option combined both
the interactive/browser based flow (when a UI was present), and a
TTY-based device code flow.

This change allows users to select the device code flow even when they
have a desktop/UI session present. This is useful to workaround possible
problems with the browser loopback/redirect mechanism.
Add the device code option to the Avalonia and WPF helper UI
applications for GitHub.

This includes adding a new explicit "device code" button to the
primary authentication prompt view, and a new device code display
prompt.
Update documentation to include the new `browser` and `device`
authentication modes for GitHub. The old `oauth` value expands to both
`browser, device` for compatibility.
Add explicit GitHub device code authentication option
Add missing assemblies and files to the Windows installer setup script.

Since the introduction of the shared UI view models between WPF and
Avalonia, we neglected to include the new assemblies in the Windows
installer package!

Also include the NOTICE file that was left out.
Added missing quotes in WSL instructions
Add missing assemblies/files to Windows installer
Speed up HTTP HEAD calls made via the HeadAsync extension method by only
waiting until the headers have been received, rather than the entire
message content.
Speed up the auto-detection mechanism in the HostProviderRegistry by
setting a short(er) timeout on the probing network call (2 seconds).
The default value from the framework is otherwise 100 seconds(!).

We introduce a setting for the user to be able to configure this timeout
value with the granularity of 1 millisecond.

Another problem that occured with this network call was crashes due to
TLS configuration issues. The network call was not wrapped in a
try-catch block which meant that the entire process would crash if there
was a problem. This isn't ideal for what is supposed to be a "best
effort" feature. Here we wrap the HEAD call in a try-catch and display
an appropriate warning message to the user.

For completeness, add documentation that explains the auto-detection
feature, how to configure the timeout, and how to disable this network
call.
Speed up host provider auto-detection and make more robust
Copy link
Contributor

@ldennington ldennington left a comment

Choose a reason for hiding this comment

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

🎉

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.

10 participants