bugfix for PR commits having different shape to regular commits

This commit is contained in:
Brendan Forster
2014-02-18 20:20:37 +11:00
parent 768461312d
commit 1231b794b1
11 changed files with 33 additions and 11 deletions

View File

@@ -89,7 +89,7 @@ namespace Octokit.Reactive
/// <param name="owner">The owner of the repository</param> /// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param> /// <param name="name">The name of the repository</param>
/// <param name="number">The pull request number</param> /// <param name="number">The pull request number</param>
/// <returns>A collection of <see cref="Commit"/> results</returns> /// <returns>A collection of <see cref="PullRequestCommit"/> results</returns>
IObservable<Commit> Commits(string owner, string name, int number); IObservable<PullRequestCommit> Commits(string owner, string name, int number);
} }
} }

View File

@@ -143,13 +143,13 @@ namespace Octokit.Reactive
/// <param name="owner">The owner of the repository</param> /// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param> /// <param name="name">The name of the repository</param>
/// <param name="number">The pull request number</param> /// <param name="number">The pull request number</param>
/// <returns>A collection of <see cref="Commit"/> results</returns> /// <returns>A collection of <see cref="PullRequestCommit"/> results</returns>
public IObservable<Commit> Commits(string owner, string name, int number) public IObservable<PullRequestCommit> Commits(string owner, string name, int number)
{ {
Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(name, "name");
return _connection.GetAndFlattenAllPages<Commit>(ApiUrls.PullRequestCommits(owner, name, number)); return _connection.GetAndFlattenAllPages<PullRequestCommit>(ApiUrls.PullRequestCommits(owner, name, number));
} }
} }
} }

View File

@@ -183,7 +183,7 @@ public class PullRequestsClientTests : IDisposable
var result = await _fixture.Commits(Helper.UserName, _repository.Name, pullRequest.Number); var result = await _fixture.Commits(Helper.UserName, _repository.Name, pullRequest.Number);
Assert.Equal(1, result.Count); Assert.Equal(1, result.Count);
Assert.Equal("this is the commit to merge into the pull request", result[0].Message); Assert.Equal("this is the commit to merge into the pull request", result[0].Commit.Message);
} }
async Task CreateTheWorld() async Task CreateTheWorld()

View File

@@ -90,7 +90,7 @@ namespace Octokit
/// <param name="owner">The owner of the repository</param> /// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param> /// <param name="name">The name of the repository</param>
/// <param name="number">The pull request number</param> /// <param name="number">The pull request number</param>
/// <returns>A <see cref="IReadOnlyList{Commit}"/> of <see cref="Commit"/>s which are part of this pull request</returns> /// <returns>A <see cref="IReadOnlyList{PullRequestCommit}"/> of <see cref="Commit"/>s which are part of this pull request</returns>
Task<IReadOnlyList<Commit>> Commits(string owner, string name, int number); Task<IReadOnlyList<PullRequestCommit>> Commits(string owner, string name, int number);
} }
} }

View File

@@ -151,13 +151,13 @@ namespace Octokit
/// <param name="owner">The owner of the repository</param> /// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param> /// <param name="name">The name of the repository</param>
/// <param name="number">The pull request number</param> /// <param name="number">The pull request number</param>
/// <returns>A <see cref="IReadOnlyList{Commit}"/> of <see cref="Commit"/>s which are part of this pull request</returns> /// <returns>A <see cref="IReadOnlyList{PullRequestCommit}"/> of <see cref="Commit"/>s which are part of this pull request</returns>
public Task<IReadOnlyList<Commit>> Commits(string owner, string name, int number) public Task<IReadOnlyList<PullRequestCommit>> Commits(string owner, string name, int number)
{ {
Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNullOrEmptyString(name, "name");
return ApiConnection.GetAll<Commit>(ApiUrls.PullRequestCommits(owner, name, number)); return ApiConnection.GetAll<PullRequestCommit>(ApiUrls.PullRequestCommits(owner, name, number));
} }
} }
} }

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace Octokit
{
public class PullRequestCommit
{
public Signature Author { get; set; }
public Uri CommentsUrl { get; set; }
public Commit Commit { get; set; }
public Signature Committer { get; set; }
public Uri HtmlUrl { get; set; }
public IEnumerable<GitReference> Parents { get; set; }
public string Sha { get; set; }
public Uri Url { get; set; }
}
}

View File

@@ -289,6 +289,7 @@
<Compile Include="Models\Response\CodeFrequency.cs" /> <Compile Include="Models\Response\CodeFrequency.cs" />
<Compile Include="Models\Response\CommitActivity.cs" /> <Compile Include="Models\Response\CommitActivity.cs" />
<Compile Include="Helpers\UnixTimeStampExtensions.cs" /> <Compile Include="Helpers\UnixTimeStampExtensions.cs" />
<Compile Include="Models\Response\PullRequestCommit.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@@ -300,6 +300,7 @@
<Compile Include="Models\Response\CodeFrequency.cs" /> <Compile Include="Models\Response\CodeFrequency.cs" />
<Compile Include="Models\Response\CommitActivity.cs" /> <Compile Include="Models\Response\CommitActivity.cs" />
<Compile Include="Helpers\UnixTimeStampExtensions.cs" /> <Compile Include="Helpers\UnixTimeStampExtensions.cs" />
<Compile Include="Models\Response\PullRequestCommit.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
</Project> </Project>

View File

@@ -295,6 +295,7 @@
<Compile Include="Models\Response\CodeFrequency.cs" /> <Compile Include="Models\Response\CodeFrequency.cs" />
<Compile Include="Models\Response\CommitActivity.cs" /> <Compile Include="Models\Response\CommitActivity.cs" />
<Compile Include="Helpers\UnixTimeStampExtensions.cs" /> <Compile Include="Helpers\UnixTimeStampExtensions.cs" />
<Compile Include="Models\Response\PullRequestCommit.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@@ -287,6 +287,7 @@
<Compile Include="Models\Response\CodeFrequency.cs" /> <Compile Include="Models\Response\CodeFrequency.cs" />
<Compile Include="Models\Response\CommitActivity.cs" /> <Compile Include="Models\Response\CommitActivity.cs" />
<Compile Include="Helpers\UnixTimeStampExtensions.cs" /> <Compile Include="Helpers\UnixTimeStampExtensions.cs" />
<Compile Include="Models\Response\PullRequestCommit.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CodeAnalysisDictionary Include="..\CustomDictionary.xml"> <CodeAnalysisDictionary Include="..\CustomDictionary.xml">

View File

@@ -131,6 +131,7 @@
<Compile Include="Models\Response\Emoji.cs" /> <Compile Include="Models\Response\Emoji.cs" />
<Compile Include="Models\Response\Contributor.cs" /> <Compile Include="Models\Response\Contributor.cs" />
<Compile Include="Models\Response\GistComment.cs" /> <Compile Include="Models\Response\GistComment.cs" />
<Compile Include="Models\Response\PullRequestCommit.cs" />
<Compile Include="Models\Response\PunchCard.cs" /> <Compile Include="Models\Response\PunchCard.cs" />
<Compile Include="Models\Response\PunchCardPoint.cs" /> <Compile Include="Models\Response\PunchCardPoint.cs" />
<Compile Include="Models\Response\Reference.cs" /> <Compile Include="Models\Response\Reference.cs" />