Console app for creating data file for https://thanks.dot.net
Перейти к файлу
Maira Wenzel 0dd120b2cc
Enable CodeQL (#35)
2022-10-31 17:37:15 -07:00
.github Create dependabot.yml (#7) 2021-08-23 17:59:25 -07:00
.vscode add PR capabilities 2021-03-03 13:33:36 -05:00
.dockerignore add PR capabilities 2021-03-03 13:33:36 -05:00
.gitignore WIP 2021-02-26 11:30:17 -05:00
CODE-OF-CONDUCT.md Create CODE-OF-CONDUCT.md 2021-08-23 09:51:20 -07:00
Dockerfile add dockerfile 2021-02-26 11:31:34 -05:00
LICENSE Create LICENSE (#6) 2021-08-23 17:58:23 -07:00
Program.cs Add user avatar url to Contributor model (#23) 2022-04-06 09:05:58 -07:00
README.md Fix URL (#21) 2022-01-03 10:30:22 -08:00
RateLimit.cs Update diff logic (#22) 2022-03-30 10:07:19 -07:00
Release.cs Add user avatar url to Contributor model (#23) 2022-04-06 09:05:58 -07:00
ReleaseCommits.cs Update diff logic (#22) 2022-03-30 10:07:19 -07:00
azure-pipelines.yml Enable CodeQL (#35) 2022-10-31 17:37:15 -07:00
dotnetthanks-loader.csproj Bump octokit from 2.0.1 to 4.0.0 (#34) 2022-10-17 09:00:55 -07:00
dotnetthanks-loader.sln Rework the calculation logic 2020-12-10 00:01:22 +11:00
startup.sh add startup file 2021-02-26 11:32:16 -05:00

README.md

thanks.dot.net - Data Loader

This is the loader application that creates the data file "core.json" for http://thanks.dot.net

Process

Each release of .NET is a collection of repositories. The list for each release is managed through the dotnet/core repository and for each see the /releases section.

  1. The loader application first loads all of the releases for dotnet/core ordered by newest -> oldest.
  2. For each release the tag of the current release and the tag of the previous release are used to retrieve the commits using the GitHub API : https://api.github.com/repos/{owner}/{repo}/compare/{fromRelease}...{toRelease}
  3. Each commit is inspected to create the data model using the TallyCommits method.
    1. A Contributor object is created if needed
    2. The commits for the given repo are added

Each child repo, other repositories in the release, are processed in the same manner.

Local Development

  1. Create a GitHub ClientID and Secret in your settings under the OAuth Apps section.
  2. Create a GitHub Personal Access Token
  3. Fork the dotnetthanks-loader repo and cd into it.
  4. Create user-secrets using the following commands
    1. dotnet user-secrets init
    2. dotnet user-secrets set GITHUB_CLIENTID <your-value>
    3. dotnet user-secrets set GITHUB_CLIENTSECRET <your-value>
    4. dotnet user-secrets set GITHUB_TOKEN <your Personal Access Token>