Search code examples
pythongithubpygithub

Get values StatsCommitActivity from pygithub


I want get stats "additions" and "deletions" GitHub rep. I try:

#!pip install PyGithub
from github import Github
g = Github("token")
repo = g.get_repo("bitcoin/bitcoin")
active = repo.get_stats_commit_activity()
print(active)

Output:

<github.StatsCommitActivity.StatsCommitActivity object at 0x0000018EBF2674F0>
<github.StatsCommitActivity.StatsCommitActivity object at 0x0000018EC09D6910>

What is my next step?

P.S: Also I found classgithub.CommitStats.CommitStats but I no have idea how work with it.


Solution

  • I suppose this is your next step:

    https://docs.github.com/en/rest/reference/metrics#get-all-contributor-commit-activity

    in pygithub: https://pygithub.readthedocs.io/en/latest/github_objects/Repository.html?highlight=get_stats_contributors#github.Repository.Repository.get_stats_contributors

    get_stats_contributors method with this kinds of return:

    hope this kinds of return val can help you:

    [
      {
        "author": {
          "login": "octocat",
          "id": 1,
          "node_id": "MDQ6VXNlcjE=",
          "avatar_url": "https://github.com/images/error/octocat_happy.gif",
          "gravatar_id": "",
          "url": "https://api.github.com/users/octocat",
          "html_url": "https://github.com/octocat",
          "followers_url": "https://api.github.com/users/octocat/followers",
          "following_url": "https://api.github.com/users/octocat/following{/other_user}",
          "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
          "organizations_url": "https://api.github.com/users/octocat/orgs",
          "repos_url": "https://api.github.com/users/octocat/repos",
          "events_url": "https://api.github.com/users/octocat/events{/privacy}",
          "received_events_url": "https://api.github.com/users/octocat/received_events",
          "type": "User",
          "site_admin": false
        },
        "total": 135,
        "weeks": [
          {
    

    or, there are some other method via git logs commandline, such as:

     git log --pretty=format:"%an" --shortstat --no-merges --author=$1 \
      | sed '/^$/d'\
      | awk -F' ' '{s1+=$4;s2+=$6}END{printf "additions: %s; deletions: %s\n",s1,s2}'
    

    hope these info can help you