{"id":20215868,"url":"https://github.com/pkarpovich/commit-author-refresher","last_synced_at":"2026-05-17T09:37:08.120Z","repository":{"id":192891649,"uuid":"633549169","full_name":"pkarpovich/commit-author-refresher","owner":"pkarpovich","description":"A command-line tool that enables you to update commit author information in a Git repository. With its simple configuration, the tool rewrites commit history, replacing author and committer names and emails according to your preference, and pushes the updated commit history to a target repository.","archived":false,"fork":false,"pushed_at":"2025-02-21T22:00:54.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T22:26:43.497Z","etag":null,"topics":["author-changer","commit-refresher","git"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkarpovich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-27T18:40:58.000Z","updated_at":"2025-02-21T21:47:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"84d33ab8-77a2-49e6-b999-370e2456b7c7","html_url":"https://github.com/pkarpovich/commit-author-refresher","commit_stats":null,"previous_names":["pkarpovich/commit-author-refresher"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkarpovich%2Fcommit-author-refresher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkarpovich%2Fcommit-author-refresher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkarpovich%2Fcommit-author-refresher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkarpovich%2Fcommit-author-refresher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkarpovich","download_url":"https://codeload.github.com/pkarpovich/commit-author-refresher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241652964,"owners_count":19997578,"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":["author-changer","commit-refresher","git"],"created_at":"2024-11-14T06:25:03.325Z","updated_at":"2025-10-24T17:35:02.348Z","avatar_url":"https://github.com/pkarpovich.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commit Author Refresher\n\nCommit Author Refresher is a tool to update the commit author information in a git repository. It takes a configuration file as input and processes each repository specified in the config. The tool rewrites the commit history, changing the author and committer names and emails to the desired values, and pushes the changes to a target repository.\n\n## Pre-requisites\nTool uses git-filter-repo to rewrite the commit history. To install git-filter-repo, follow the instructions [here](https://github.com/newren/git-filter-repo/blob/main/INSTALL.md) or use homebrew\n\n### Homebrew\n```bash\nbrew install git-filter-repo\n```\n\n## Installation\n\n### Homebrew\n\nTo install the Commit Author Refresher using [Homebrew](https://brew.sh/), run the following command:\n\n```bash\nbrew tap pkarpovich/apps\nbrew install pkarpovich/apps/commit-author-refresher\n```\n\n### Manual Installation\n\nTo install the Commit Author Refresher, make sure you have [Go](https://golang.org/dl/) installed on your system. Then, clone the repository and build the binary:\n\n```bash\ngit clone https://github.com/pkarpovich/commit-author-refresher.git\ncd commit-author-refresher\ngo build -o caf\n```\n\n\n## Usage\n\nCreate a JSON configuration file named `caf-config.json` with the following structure:\n\n```json\n[\n  {\n    \"originalRepo\": \"https://github.com/originaluser/repo.git\",\n    \"targetRepo\": \"https://github.com/targetuser/repo.git\",\n    \"author\": {\n      \"name\": \"New Author Name\",\n      \"email\": \"new.author@example.com\"\n    },\n    \"excludedAuthors\": [\n      \"exclude1@example.com\",\n      \"exclude2@example.com\"\n    ]\n  }\n]\n```\n- `originalRepo`: The URL of the original repository.\n- `targetRepo`: The URL of the target repository where the updated commits will be pushed. \n- `author`: An object containing the new author's name and email. \n- `excludedAuthors`: An array of email addresses that should not be changed.\n\nTo process all repositories specified in the configuration file, run the caf binary:\n\n```bash\n./caf\n```\n\nTo process a single repository, use the -p or --project flag followed by the project name:\n\n```bash\n./caf -p project-name\n```\n\nYou can also specify an alternate configuration file with the -f or --file flag:\n\n```bash\n./caf -f other-config.json\n```\n\n## Testing\nTo run tests for the Commit Author Refresher, execute the go test command in the terminal:\n```bash\ngo test\n```\n\n## Disclaimer\nThis tool rewrites the commit history, which can be destructive. It is recommended to work on a fresh clone of the repository and double-check the results before pushing the changes. Use this tool at your own risk.\n\n## License\nThis project is released under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkarpovich%2Fcommit-author-refresher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkarpovich%2Fcommit-author-refresher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkarpovich%2Fcommit-author-refresher/lists"}