diff --git a/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs b/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs
new file mode 100644
index 00000000..707f7556
--- /dev/null
+++ b/Octokit.Tests/Exceptions/RepositoryExistsExceptionTests.cs
@@ -0,0 +1,36 @@
+using Xunit;
+
+namespace Octokit.Tests.Exceptions
+{
+ public class RepositoryExistsExceptionTests
+ {
+ public class TheMessageProperty
+ {
+ [Fact]
+ public void WhenOwnerIsNullDoNotMentionInMessage()
+ {
+ var exception = new RepositoryExistsException(
+ null,
+ "some-repo",
+ false,
+ GitHubClient.GitHubDotComUrl,
+ new ApiValidationException());
+
+ Assert.Equal("There is already a repository named 'some-repo' for the current account.", exception.Message);
+ }
+
+ [Fact]
+ public void WhenOwnerIsNotNullMentionInMessage()
+ {
+ var exception = new RepositoryExistsException(
+ "some-org",
+ "some-repo",
+ true,
+ GitHubClient.GitHubDotComUrl,
+ new ApiValidationException());
+
+ Assert.Equal("There is already a repository named 'some-repo' in the organization 'some-org'.", exception.Message);
+ }
+ }
+ }
+}
diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj
index 312e40ad..cde48c61 100644
--- a/Octokit.Tests/Octokit.Tests.csproj
+++ b/Octokit.Tests/Octokit.Tests.csproj
@@ -98,6 +98,7 @@
+
diff --git a/Octokit/Clients/RepositoriesClient.cs b/Octokit/Clients/RepositoriesClient.cs
index fc22e459..55670185 100644
--- a/Octokit/Clients/RepositoriesClient.cs
+++ b/Octokit/Clients/RepositoriesClient.cs
@@ -84,13 +84,11 @@ namespace Octokit
errorMessage,
StringComparison.OrdinalIgnoreCase))
{
- string owner = organizationLogin ?? Connection.Credentials.Login;
-
var baseAddress = Connection.BaseAddress.Host != GitHubClient.GitHubApiUrl.Host
? Connection.BaseAddress
: new Uri("https://github.com/");
throw new RepositoryExistsException(
- owner,
+ organizationLogin,
newRepository.Name,
organizationLogin != null,
baseAddress, e);
diff --git a/Octokit/Exceptions/RepositoryExistsException.cs b/Octokit/Exceptions/RepositoryExistsException.cs
index f5f61828..adcb698b 100644
--- a/Octokit/Exceptions/RepositoryExistsException.cs
+++ b/Octokit/Exceptions/RepositoryExistsException.cs
@@ -37,11 +37,10 @@ namespace Octokit
ApiValidationException innerException)
: base(innerException)
{
- Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "repositoryName");
Ensure.ArgumentNotNull(baseAddress, "baseAddress");
- Owner = owner;
+ Owner = owner ?? ""; // TODO: this is a total hack
RepositoryName = name;
OwnerIsOrganization = ownerIsOrganization;
var webBaseAddress = baseAddress.Host != GitHubClient.GitHubApiUrl.Host
@@ -49,8 +48,8 @@ namespace Octokit
: GitHubClient.GitHubDotComUrl;
ExistingRepositoryWebUrl = new Uri(webBaseAddress, new Uri(owner + "/" + name, UriKind.Relative));
string messageFormat = ownerIsOrganization
- ? "There is already a repository named '{0}' in the organization '{1}'"
- : "There is already a repository named '{0}' for the owner '{1}'.";
+ ? "There is already a repository named '{0}' in the organization '{1}'."
+ : "There is already a repository named '{0}' for the current account.";
_message = String.Format(CultureInfo.InvariantCulture, messageFormat, name, owner);
}