{"id":19653268,"url":"https://github.com/florianmichael/elogitcalculator","last_synced_at":"2025-02-27T01:33:01.992Z","repository":{"id":259372806,"uuid":"877684403","full_name":"FlorianMichael/EloGitCalculator","owner":"FlorianMichael","description":"Calculates Elo ratings for contributors based on their activity in a git history.","archived":false,"fork":false,"pushed_at":"2024-10-24T04:14:12.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T00:17:23.481Z","etag":null,"topics":["activity","chess","contributions","elo","git"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlorianMichael.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"FlorianMichael","custom":["https://florianmichael.de/donate"]}},"created_at":"2024-10-24T04:13:49.000Z","updated_at":"2024-11-08T22:24:25.000Z","dependencies_parsed_at":"2024-10-24T23:15:43.009Z","dependency_job_id":"e3063d82-aa55-4b9f-84dd-e74fcbeae984","html_url":"https://github.com/FlorianMichael/EloGitCalculator","commit_stats":null,"previous_names":["florianmichael/elogitcalculator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianMichael%2FEloGitCalculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianMichael%2FEloGitCalculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianMichael%2FEloGitCalculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianMichael%2FEloGitCalculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlorianMichael","download_url":"https://codeload.github.com/FlorianMichael/EloGitCalculator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240961602,"owners_count":19885359,"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","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":["activity","chess","contributions","elo","git"],"created_at":"2024-11-11T15:13:44.118Z","updated_at":"2025-02-27T01:33:01.964Z","avatar_url":"https://github.com/FlorianMichael.png","language":"Python","funding_links":["https://github.com/sponsors/FlorianMichael","https://florianmichael.de/donate"],"categories":[],"sub_categories":[],"readme":"# Elo Ratings for Git Contributors\n\nThis program analyzes commit history from a specified Git repository, calculates Elo ratings for contributors based on their activity, and visualizes the ratings over time using animated plots.\n\n## Features\n\n- **Elo Rating Calculation**: Uses the Elo rating system to rank contributors based on their commit activity.\n- **Dynamic Visualization**: Animates Elo ratings over time, allowing for a clear view of contributions and changes in ratings.\n- **Customizable Settings**: Easily configure the repository path, branch, Elo parameters, inactivity thresholds, and more.\n\n## Requirements\n\n- Python 3.x\n- Required Python libraries:\n  - `gitpython`\n  - `pandas`\n  - `matplotlib`\n\nYou can install the required libraries using pip:\n\n```bash\npip install gitpython pandas matplotlib\n```\n\n## Usage\n\nTo run the script, execute the following command in your terminal:\n\n```bash\npython your_script.py --repo_path /path/to/your/repo --branch your_branch_name --initial_rating 1500 --K 32 --inactivity_threshold 30 --stagnant_elo_threshold 30 --days_to_show 365 --top_contributors_count 5 --name_mapping_file name_mapping.json\n```\n\n### Arguments:\n\n- `--repo_path`: Path to the Git repository.\n- `--branch`: The branch to analyze commits (default: `master`).\n- `--initial_rating`: Initial Elo rating for contributors (default: `1500`).\n- `--K`: K-factor for Elo rating adjustments (default: `32`).\n- `--inactivity_threshold`: Days without commits before being considered inactive (default: `30`).\n- `--stagnant_elo_threshold`: Days at 1500 before hiding contributor (default: `30`).\n- `--days_to_show`: Number of days of data to show in the animation (default: `365`).\n- `--top_contributors_count`: Number of top contributors to display (default: `5`).\n- `--name_mapping_file`: Path to a JSON file containing author name mappings, allowing you to consolidate multiple author names into a single canonical name. For example, a `name_mapping.json` file might contain:\n  ```json\n\t{\n\t\t\"EnZaXD\": \"EnZaXD\",\n\t\t\"FlorianMichael\": \"EnZaXD\"\n\t}\n  ```\n\n## Example\n\n```bash\npython git_ratings_analyzer.py --repo_path /path/to/your/repo --branch main --initial_rating 1500 --K 32 --inactivity_threshold 30 --stagnant_elo_threshold 30 --days_to_show 365 --top_contributors_count 5 --name_mapping_file name_mapping.json\n```\n\n## License\n\nThis project is licensed under the Apache-2.0 License. See the [LICENSE](LICENSE) file for more details.\n\n## Acknowledgments\n\n- [Elo Rating System](https://en.wikipedia.org/wiki/Elo_rating_system)\n- [GitPython](https://gitpython.readthedocs.io/)\n- [Matplotlib](https://matplotlib.org/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianmichael%2Felogitcalculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorianmichael%2Felogitcalculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianmichael%2Felogitcalculator/lists"}