{"id":15441836,"url":"https://github.com/mudler/gitinsight","last_synced_at":"2025-08-01T20:42:50.296Z","repository":{"id":19319166,"uuid":"22557351","full_name":"mudler/GitInsight","owner":"mudler","description":"Predict your github contributions using Bayesian inference and Markov chain with perl and PDL","archived":false,"fork":false,"pushed_at":"2014-11-03T19:01:52.000Z","size":356,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-19T20:56:08.189Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://gitinsight.mudler.pm/","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mudler.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-02T20:59:45.000Z","updated_at":"2024-01-02T22:20:13.000Z","dependencies_parsed_at":"2022-09-10T20:11:42.303Z","dependency_job_id":null,"html_url":"https://github.com/mudler/GitInsight","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/mudler/GitInsight","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mudler%2FGitInsight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mudler%2FGitInsight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mudler%2FGitInsight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mudler%2FGitInsight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mudler","download_url":"https://codeload.github.com/mudler/GitInsight/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mudler%2FGitInsight/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268294082,"owners_count":24227610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T19:23:26.703Z","updated_at":"2025-08-01T20:42:50.256Z","avatar_url":"https://github.com/mudler.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nGitInsight - Predict your github contributions using Bayesian inference and Markov chain\n\n# SYNOPSIS\n\n    gitinsight --username [githubusername] (--nodaystats) (--accuracy) #using the shipped bin\n\n    #or using the module\n\n    my $Insight= GitInsight-\u003enew(no_day_stats =\u003e 0, username =\u003e \"markov\", accuracy=\u003e 1);\n    my $Result= $Insight-\u003eprocess;\n    my $accuracy = $Insight-\u003e{accuracy};\n    $Result = $Insight-\u003e{result};\n    # $Result contains the next week predictions and is an arrayref of arrayrefs    [  [ 'Sat', 1, '2014-07-1', [ 0 ,  '0.151515151515152', '0.0606060606060606', '0.0404040404040404',  0  ]  ],   ..   [            'DayofWeek',      'winner_label',  'day' ,  [             probability_label_0,  probability_label_1,              probability_label_2,          probability_label_3,              probability_label_4            ]          ]]\n\n# DESCRIPTION\n\nGitInsight is module that allow you to predict your github contributions in the \"calendar contribution\" style of github (the table of contribution that you see on your profile page).\n\n# HOW DOES IT WORK?\n\nGitInsight generates a transation probrability matrix from your github contrib\\_calendar to compute the possibles states for the following days. Given that GitHub split the states thru 5 states (or here also called label), the probability can be inferenced by using Bayesian methods to update the beliefs of the possible state transition, while markov chain is used to predict the states. The output of the submitted data is then plotted using Cellular Automata.\n\n## THEORY\n\nWe trace the transitions states in a matrix and increasing the count as far as we observe a transition ([https://en.wikipedia.org/wiki/Transition\\_matrix](https://en.wikipedia.org/wiki/Transition_matrix)), then we inference the probabilities using Bayesan method [https://en.wikipedia.org/wiki/Bayesian\\_inference](https://en.wikipedia.org/wiki/Bayesian_inference) [https://en.wikipedia.org/wiki/Examples\\_of\\_Markov\\_chains](https://en.wikipedia.org/wiki/Examples_of_Markov_chains).\n\n# INSTALLATION\n\nGitInsight requires the installation of gsl (GNU scientific library), gd(http://libgd.org/), PDL and PDL::Stats  (to be installed after the gsl library set).\n\non Debian:\n\n        apt-get install gsl-bin libgs10-devt\n        apt-get install pdl libpdl-stats-perl libgd2-xpm-dev\n\nIt's reccomended to use cpanm to install all the required deps, install it thru your package manager or just do:\n\n    cpan App::cpanminus\n\nAfter the installation of gsl, clone the repository and install all the dependencies with cpanm:\n\n    cpanm --installdeps .\n\nThen install it as usual:\n\n    perl Build.PL\n    ./Build\n    ./Build test #ensure that the module works correctly\n    ./Build install\n\n# OPTIONS\n\n## username\n\nrequired, it's the GitHub username used to calculate the prediction\n\n## ca\\_output\n\nyou can enable/disable the cellular autmata output using this option (1/0)\n\n## no\\_day\\_stats\n\nsetting this option to 1, will slightly change the prediction: it will be calculated a unique transition matrix instead one for each day\n\n## left\\_cutoff\n\nused to cut the days from the start (e.g. if you want to delete the first 20 days from the prediction, just set this to 20)\n\n## cutoff\\_offset\n\nused to select a range where the prediction happens (e.g. if you want to calculate the prediction of a portion of your year of contribution)\n\n## file\\_output\n\nhere you can choose the file output name for ca.\n\n## accuracy\n\nEnable/disable accuracy calculation (1/0)\n\n## verbose\n\nEnable/disable verbosity (1/0)\n\n# METHODS\n\n## contrib\\_calendar($username)\n\nFetches the github contrib\\_calendar of the specified user\n\n## process\n\nCalculate the predictions and generate the CA\n\n## start\\_day\n\nReturns the first day of the contrib\\_calendar\n\n## last\\_day\n\nReturns the last day of the contrib calendar (prediction included)\n\n## prediction\\_start\\_day\n\nReturns the first day of the prediction (7 days of predictions)\n\n# AUTHOR\n\nmudler \u003cmudler@dark-lab.net\u003e\n\n# COPYRIGHT\n\nCopyright 2014- mudler\n\n# LICENSE\n\nThis library is free software; you can redistribute it and/or modify\nit under the same terms as Perl itself.\n\n# SEE ALSO\n\n[GitInsight::Util](https://metacpan.org/pod/GitInsight::Util), [PDL](https://metacpan.org/pod/PDL), [PDL::Stats](https://metacpan.org/pod/PDL::Stats)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmudler%2Fgitinsight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmudler%2Fgitinsight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmudler%2Fgitinsight/lists"}