Latest commits notes from github
For AOP with Roslyn I want to automatically get the latest commits message before doing a new commit.
This was solved easily using https://github.com/octokit/octokit.net
The code is very simple:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | public async Task<DateForCommit[]> BetweenLatest2Commits() { var client = new GitHubClient( new ProductHeaderValue( "GitBetweenCommits" )); var rep = await client.Repository.Get(Author, RepositoryName); var relLatest = await client.Repository.Release.GetLatest(rep.Id); var relAll = await client.Repository.Release.GetAll(rep.Id, new ApiOptions() { PageSize = int .MaxValue - 1 }); var relBeforeLatest = relAll.OrderByDescending(it => it.CreatedAt).Skip(1).FirstOrDefault(); var dateLatest = relLatest.CreatedAt; var dateBeforeLatest = relBeforeLatest.CreatedAt; var commits = await client.Repository.Commit.GetAll(rep.Id, ApiOptions.None); var res = commits .Where(it => it.Commit.Author.Date >= dateBeforeLatest && it.Commit.Author.Date<=dateLatest ) .Select(it => new DateForCommit() { Author = it.Commit.Author.Name, Message = it.Commit.Message, CommitDate = it.Commit.Author.Date.DateTime }) .ToArray(); return res; } |
It works also as a .NET Global tool
Install with
dotnet tool install –global dotnet-gcr
run with
dotnet gcr
for example for https://github.com/ignatandrei/AOP_With_Roslyn the arguments are
dotnet gcr ignatandrei AOP_With_Roslyn
NuGet at https://www.nuget.org/packages/dotnet-gcr/
Full Code at https://github.com/ignatandrei/GitCommitsBetweenReleases
enjoy