diff --git a/vsts/vsts/git/v4_0/git_client.py b/vsts/vsts/git/v4_0/git_client.py index 7297d096..bc537a84 100644 --- a/vsts/vsts/git/v4_0/git_client.py +++ b/vsts/vsts/git/v4_0/git_client.py @@ -27,6 +27,8 @@ def get_vsts_info(self, relative_remote_url): headers = {'Accept': 'application/json'} if self._suppress_fedauth_redirect: headers['X-TFS-FedAuthRedirect'] = 'Suppress' + if self._force_msa_pass_through: + headers['X-VSS-ForceMsaPassThrough'] = 'true' response = self._send_request(request, headers) return self._deserialize('VstsInfo', response) diff --git a/vsts/vsts/git/v4_1/git_client.py b/vsts/vsts/git/v4_1/git_client.py index e5cb6ab1..dfa27cac 100644 --- a/vsts/vsts/git/v4_1/git_client.py +++ b/vsts/vsts/git/v4_1/git_client.py @@ -26,5 +26,7 @@ def get_vsts_info(self, relative_remote_url): headers = {'Accept': 'application/json'} if self._suppress_fedauth_redirect: headers['X-TFS-FedAuthRedirect'] = 'Suppress' + if self._force_msa_pass_through: + headers['X-VSS-ForceMsaPassThrough'] = 'true' response = self._send_request(request, headers) return self._deserialize('VstsInfo', response) diff --git a/vsts/vsts/vss_client.py b/vsts/vsts/vss_client.py index f738ee01..9d95eb23 100644 --- a/vsts/vsts/vss_client.py +++ b/vsts/vsts/vss_client.py @@ -38,6 +38,7 @@ def __init__(self, base_url=None, creds=None): self._all_host_types_locations = None self._locations = None self._suppress_fedauth_redirect = True + self._force_msa_pass_through = True self.normalized_url = VssClient._normalize_url(base_url) def add_user_agent(self, user_agent): @@ -88,6 +89,8 @@ def _send(self, http_method, location_id, version, route_values=None, headers[key] = self.config.additional_headers[key] if self._suppress_fedauth_redirect: headers['X-TFS-FedAuthRedirect'] = 'Suppress' + if self._force_msa_pass_through: + headers['X-VSS-ForceMsaPassThrough'] = 'true' if VssClient._session_header_key in VssClient._session_data and VssClient._session_header_key not in headers: headers[VssClient._session_header_key] = VssClient._session_data[VssClient._session_header_key] response = self._send_request(request=request, headers=headers, content=content) @@ -173,6 +176,8 @@ def _get_resource_locations(self, all_host_types): headers = {'Accept': 'application/json'} if self._suppress_fedauth_redirect: headers['X-TFS-FedAuthRedirect'] = 'Suppress' + if self._force_msa_pass_through: + headers['X-VSS-ForceMsaPassThrough'] = 'true' response = self._send_request(request, headers=headers) wrapper = self._base_deserialize('VssJsonCollectionWrapper', response) if wrapper is None: