Skip to content

Commit

Permalink
recognise BitBucket hosts by WWW-Authenticate header
Browse files Browse the repository at this point in the history
  • Loading branch information
hickford committed Oct 19, 2023
1 parent ac0b264 commit 12ab89b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/shared/Atlassian.Bitbucket.Tests/BitbucketHostProviderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,20 @@ public void BitbucketHostProvider_IsSupported(string protocol, string host, bool
Assert.Equal(expected, provider.IsSupported(input));
}

[Theory]
[InlineData("Basic realm=\"Atlassian Bitbucket\"", true)]
[InlineData("Basic realm=\"GitSponge\"", false)]
public void BitbucketHostProvider_IsSupported_WWWAuth(string wwwauth, bool expected)
{
var input = new InputArguments(new Dictionary<string, string>
{
["wwwauth"] = wwwauth,
});

var provider = new BitbucketHostProvider(new TestCommandContext());
Assert.Equal(expected, provider.IsSupported(input));
}

[Fact]
public void BitbucketHostProvider_IsSupported_FailsForNullInput()
{
Expand Down
6 changes: 6 additions & 0 deletions src/shared/Atlassian.Bitbucket/BitbucketHostProvider.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Atlassian.Bitbucket.Cloud;
Expand Down Expand Up @@ -43,6 +44,11 @@ public bool IsSupported(InputArguments input)
return false;
}

if (input.WwwAuth.Any(x => x.Contains("realm=\"Atlassian Bitbucket\"", StringComparison.InvariantCultureIgnoreCase)))
{
return true;
}

// Split port number and hostname from host input argument
if (!input.TryGetHostAndPort(out string hostName, out _))
{
Expand Down

0 comments on commit 12ab89b

Please sign in to comment.