{"id":3436,"url":"https://github.com/nanos/FediFetcher","last_synced_at":"2026-08-13T12:31:10.648Z","repository":{"id":122316677,"uuid":"610268098","full_name":"nanos/FediFetcher","owner":"nanos","description":"FediFetcher is a tool for Mastodon that automatically fetches missing replies and posts from other fediverse instances, and adds them to your own Mastodon instance.","archived":false,"fork":false,"pushed_at":"2026-08-06T16:14:05.000Z","size":883,"stargazers_count":373,"open_issues_count":6,"forks_count":236,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-08-06T16:51:48.926Z","etag":null,"topics":["mastodon"],"latest_commit_sha":null,"homepage":"https://blog.thms.uk/fedifetcher?utm_source=github","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nanos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2023-03-06T12:41:38.000Z","updated_at":"2026-08-06T16:16:31.000Z","dependencies_parsed_at":"2026-08-06T09:30:23.064Z","dependency_job_id":null,"html_url":"https://github.com/nanos/FediFetcher","commit_stats":{"total_commits":192,"total_committers":17,"mean_commits":"11.294117647058824","dds":"0.33854166666666663","last_synced_commit":"0dc65a60efb0bec0fb899f5e54f43681c65e3bb5"},"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/nanos/FediFetcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanos","download_url":"https://codeload.github.com/nanos/FediFetcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36367591,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-07T02:00:06.708Z","response_time":57,"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"}},"owner":{"login":"nanos","name":null,"uuid":"5182595","kind":"user","description":"","email":"","website":"https://michael.thms.uk/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/5182595?v=4","repositories_count":2,"last_synced_at":"2023-03-07T12:39:18.349Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nanos","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T10:40:35.034Z","updated_at":"2023-03-07T12:39:18.351Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanos","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanos/repositories"},"packages":[],"commits":{"id":1256302,"full_name":"nanos/FediFetcher","default_branch":"main","total_commits":405,"total_committers":28,"total_bot_commits":18,"total_bot_committers":1,"mean_commits":14.464285714285714,"dds":0.5629629629629629,"past_year_total_commits":95,"past_year_total_committers":5,"past_year_total_bot_commits":8,"past_year_total_bot_committers":1,"past_year_mean_commits":19.0,"past_year_dds":0.2315789473684211,"last_synced_at":"2026-08-11T11:30:56.923Z","last_synced_commit":"275cf93344871c0589fc2bd001fcf9d3960b2194","created_at":"2023-04-05T16:00:47.884Z","updated_at":"2026-08-11T11:30:56.851Z","committers":[{"name":"nanos","email":"me@nanos.bz","login":null,"count":177},{"name":"nanos","email":"nanos@thms.uk","login":"nanos","count":124},{"name":"nanos-bot","email":"bot@thms.uk","login":null,"count":19},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":18},{"name":"Timothy Quilling","email":"teqed.arken@gmail.com","login":"Teqed","count":10},{"name":"Andrew Kvalheim","email":"andrew@kvalhe.im","login":"AndrewKvalheim","count":6},{"name":"Andrew Williams","email":"andy@tensixtyone.com","login":"nikdoof","count":5},{"name":"B Tasker","email":"github@bentasker.co.uk","login":"bentasker","count":5},{"name":"Brian","email":"bdmorin","login":"bdmorin","count":5},{"name":"Toad King","email":"toadking@toadking.com","login":"ToadKing","count":5},{"name":"Colin Sullender","email":"shiruken343@gmail.com","login":"shiruken","count":4},{"name":"Plux Stahre","email":"github@plux.se","login":"itspluxstahre","count":4},{"name":"Tealk","email":"tealk@rollenspiel.monster","login":"Tealk","count":3},{"name":"Ari Gato","email":"ari@is-a.cat","login":"arachnist","count":3},{"name":"Ben Yafai","email":"ben@yaf.ai","login":"benyafai","count":2},{"name":"Sam Hill","email":"samuhill@gmail.com","login":"samjhill","count":2},{"name":"Michael Thomas","email":"michael@es.thms.uk","login":null,"count":2},{"name":"Bas","email":"bas@flawed.nl","login":"lhoBas","count":1},{"name":"Cassidy James Blaede","email":"c@ssidyjam.es","login":"cassidyjames","count":1},{"name":"Coehill","email":"craigtski47@gmail.com","login":"Coehill","count":1},{"name":"Edd Miles","email":"edd@secondmind.ai","login":"EddMCambs","count":1},{"name":"Geoffrey “Frogeye” Preud'homme","email":"geoffrey@frogeye.fr","login":"GeoffreyFrogeye","count":1},{"name":"Jakob Borg","email":"jakob@kastelo.net","login":"calmh","count":1},{"name":"Jonas","email":"44544539+likeazir","login":"likeazir","count":1},{"name":"Jonas Brusman","email":"jonas@brusman.se","login":"himynameisjonas","count":1},{"name":"Laura Hausmann","email":"laura@hausmann.dev","login":"zotanmew","count":1},{"name":"Ruby Iris Juric","email":"ruby@srxl.me","login":"Sorixelle","count":1},{"name":"Yoann MALLEMANCHE","email":"yoann.mallemanche@gmail.com","login":"YoannMa","count":1}],"past_year_committers":[{"name":"nanos","email":"nanos@thms.uk","login":"nanos","count":73},{"name":"nanos-bot","email":"bot@thms.uk","login":null,"count":12},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":8},{"name":"Jakob Borg","email":"jakob@kastelo.net","login":"calmh","count":1},{"name":"Geoffrey “Frogeye” Preud'homme","email":"geoffrey@frogeye.fr","login":"GeoffreyFrogeye","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-12T00:00:07.637Z","repositories_count":6633574,"commits_count":915536841,"contributors_count":39052866,"owners_count":1332502,"committers_count":3296943,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"nanos/FediFetcher","html_url":"https://github.com/nanos/FediFetcher","last_synced_at":"2026-08-10T11:00:50.413Z","status":null,"issues_count":123,"pull_requests_count":145,"avg_time_to_close_issue":3240014.9553571427,"avg_time_to_close_pull_request":273494.0970149254,"issues_closed_count":112,"pull_requests_closed_count":134,"pull_request_authors_count":29,"issue_authors_count":67,"avg_comments_per_issue":3.75609756097561,"avg_comments_per_pull_request":0.7310344827586207,"merged_pull_requests_count":126,"bot_issues_count":0,"bot_pull_requests_count":24,"past_year_issues_count":5,"past_year_pull_requests_count":26,"past_year_avg_time_to_close_issue":5760087.5,"past_year_avg_time_to_close_pull_request":17987.346153846152,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":26,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":4.4,"past_year_avg_comments_per_pull_request":0.34615384615384615,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":5,"past_year_merged_pull_requests_count":26,"created_at":"2023-05-09T11:06:44.249Z","updated_at":"2026-08-12T10:58:49.180Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanos%2FFediFetcher/issues","issue_labels_count":{"table":{"enhancement":27,"bug":10,"help wanted":8,"question":6,"documentation":2}},"pull_request_labels_count":{"table":{"dependencies":24,"python":7,"github_actions":3}},"issue_author_associations_count":{"table":{"NONE":95,"OWNER":20,"CONTRIBUTOR":8}},"pull_request_author_associations_count":{"table":{"OWNER":68,"CONTRIBUTOR":56,"NONE":21}},"issue_authors":{"table":{"nanos":20,"quicoto":8,"p37307":6,"RJGhugo":4,"csolisr":4,"lnlyssg":3,"b2cc":3,"ethereal-engineer":2,"bentasker":2,"jaytay79":2,"colinstu12":2,"MagicLike":2,"Sir-Photch":2,"cooperaj":2,"Coehill":2,"Tealk":2,"politas":2,"MrHamel":2,"ltning":2,"SiskoUrso":2,"AndrewKvalheim":2,"paviro":2,"danielcolquitt":1,"EddiesTech":1,"trondolsen":1,"edoswald":1,"JoshuaHolme":1,"Y0ngg4n":1,"Arutaz":1,"SuperSandro2000":1,"boogah":1,"Wurzelmann":1,"EddMCambs":1,"stefanbohacek":1,"libertyforward1":1,"paulo-roger":1,"cassidyjames":1,"shiruken":1,"star-glider":1,"33b5e5":1,"akrabat":1,"nnjeremy":1,"veeyawn":1,"piratenpanda":1,"bogge101":1,"justjanne":1,"brainsys":1,"mattlehrer":1,"Xipherisroot":1,"foozmeat":1,"PinballsWizard":1,"strafplanet":1,"EmJotGeh":1,"timnolte":1,"smiba":1,"gregology":1,"MarcelWaldvogel":1,"delroth":1,"Crazypedia":1,"Taywee":1,"nohillside":1,"NablaMetal":1,"kevanloy":1,"SleepyCatten":1,"calmh":1,"duponin":1,"aeharding":1}},"pull_request_authors":{"table":{"nanos":68,"dependabot[bot]":24,"AndrewKvalheim":8,"arachnist":3,"nikdoof":3,"benyafai":3,"Tealk":2,"jmcharter":2,"Sorixelle":2,"bdmorin":2,"Coehill":2,"shiruken":2,"likeazir":2,"Teqed":2,"EddMCambs":2,"itspluxstahre":2,"samjhill":2,"rursache":2,"JSLemaire-Esmart":2,"brucepucci":1,"bentasker":1,"zotanmew":1,"ToadKing":1,"himynameisjonas":1,"calmh":1,"cassidyjames":1,"GeoffreyFrogeye":1,"dvtkrlbs":1,"YoannMa":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-12T00:00:07.634Z","repositories_count":14970636,"issues_count":36281402,"pull_requests_count":116045479,"authors_count":11439273,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{"enhancement":1}},"past_year_pull_request_labels_count":{"table":{"dependencies":5,"python":4,"github_actions":1}},"past_year_issue_author_associations_count":{"table":{"NONE":4,"CONTRIBUTOR":1}},"past_year_pull_request_author_associations_count":{"table":{"OWNER":19,"CONTRIBUTOR":7}},"past_year_issue_authors":{"table":{"calmh":1,"colinstu12":1,"EmJotGeh":1,"nnjeremy":1,"SleepyCatten":1}},"past_year_pull_request_authors":{"table":{"nanos":19,"dependabot[bot]":5,"calmh":1,"GeoffreyFrogeye":1}},"maintainers":[{"table":{"login":"nanos","count":88,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nanos"}}],"active_maintainers":[{"table":{"login":"nanos","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nanos"}}]}},"events":{"total":{"ReleaseEvent":4,"DeleteEvent":11,"PullRequestEvent":24,"ForkEvent":43,"IssuesEvent":17,"WatchEvent":52,"IssueCommentEvent":79,"PushEvent":23,"GollumEvent":8,"CreateEvent":18},"last_year":{"DeleteEvent":5,"PullRequestEvent":6,"ForkEvent":3,"WatchEvent":4,"IssueCommentEvent":5,"PushEvent":8,"CreateEvent":7}},"keywords":["mastodon"],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2026-08-06T09:30:22.824Z","updated_at":"2026-08-06T09:30:22.824Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"requirements-dev.txt","sha":null,"kind":"manifest","created_at":"2026-08-06T09:30:22.887Z","updated_at":"2026-08-06T09:30:22.887Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/requirements-dev.txt","dependencies":[{"id":25908720989,"package_name":"mypy","ecosystem":"pypi","requirements":"==2.3.0","direct":true,"kind":"development","optional":false},{"id":25908720990,"package_name":"pytest","ecosystem":"pypi","requirements":"==9.1.1","direct":true,"kind":"development","optional":false},{"id":25908720991,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"==7.1.0","direct":true,"kind":"development","optional":false},{"id":25908720992,"package_name":"pytest-randomly","ecosystem":"pypi","requirements":"==4.1.0","direct":true,"kind":"development","optional":false},{"id":25908720993,"package_name":"ruff","ecosystem":"pypi","requirements":"==0.16.1","direct":true,"kind":"development","optional":false},{"id":25908720994,"package_name":"types-python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.20260716","direct":true,"kind":"development","optional":false},{"id":25908720995,"package_name":"types-requests","ecosystem":"pypi","requirements":"==2.33.0.20260712","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build-container.yaml","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:47.107Z","updated_at":"2025-12-28T22:02:47.107Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/.github/workflows/build-container.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/get_context.yml","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:47.156Z","updated_at":"2025-12-28T22:02:47.156Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/.github/workflows/get_context.yml","dependencies":[{"id":25780478256,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25780478257,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25780478258,"package_name":"dawidd6/action-download-artifact","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false},{"id":25780478323,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pytest.yml","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:47.956Z","updated_at":"2025-12-28T22:02:47.956Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/.github/workflows/pytest.yml","dependencies":[{"id":25780478326,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25780478327,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25780478328,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/update-version-number.yaml","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:48.016Z","updated_at":"2025-12-28T22:02:48.016Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/.github/workflows/update-version-number.yaml","dependencies":[{"id":25780478335,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25780478336,"package_name":"docker/setup-qemu-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":25780478575,"package_name":"docker/setup-buildx-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":25780478653,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":25780478654,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:50.958Z","updated_at":"2025-12-28T22:02:50.958Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/Dockerfile","dependencies":[{"id":25780478693,"package_name":"python","ecosystem":"docker","requirements":"3.11-alpine","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2025-12-28T22:02:51.015Z","updated_at":"2025-12-28T22:02:51.015Z","repository_link":"https://github.com/nanos/FediFetcher/blob/main/requirements.txt","dependencies":[{"id":25780478694,"package_name":"certifi","ecosystem":"pypi","requirements":"==2024.7.4","direct":true,"kind":"runtime","optional":false},{"id":25780478695,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.0.1","direct":true,"kind":"runtime","optional":false},{"id":25780478696,"package_name":"defusedxml","ecosystem":"pypi","requirements":"==0.7.1","direct":true,"kind":"runtime","optional":false},{"id":25780478697,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.19","direct":true,"kind":"runtime","optional":false},{"id":25780478825,"package_name":"idna","ecosystem":"pypi","requirements":"==3.7","direct":true,"kind":"runtime","optional":false},{"id":25780478826,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==2.0.0","direct":true,"kind":"runtime","optional":false},{"id":25780478827,"package_name":"packaging","ecosystem":"pypi","requirements":"==24.1","direct":true,"kind":"runtime","optional":false},{"id":25780478828,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":25780478829,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.2.2","direct":true,"kind":"runtime","optional":false},{"id":25780478830,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.8.2","direct":true,"kind":"runtime","optional":false},{"id":25780478831,"package_name":"requests","ecosystem":"pypi","requirements":"==2.32.4","direct":true,"kind":"runtime","optional":false},{"id":25780478832,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":true,"kind":"runtime","optional":false},{"id":25780478833,"package_name":"smmap","ecosystem":"pypi","requirements":"==5.0.0","direct":true,"kind":"runtime","optional":false},{"id":25780478840,"package_name":"urllib3","ecosystem":"pypi","requirements":"==2.6.0","direct":true,"kind":"runtime","optional":false},{"id":25780478841,"package_name":"xxhash","ecosystem":"pypi","requirements":"==3.4.1","direct":true,"kind":"runtime","optional":false}]}],"score":9.26974071525763,"created_at":"2023-04-05T15:48:15.264Z","updated_at":"2026-08-13T12:31:10.649Z","avatar_url":"https://github.com/nanos.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/3436","html_url":"https://summary.ecosyste.ms/projects/3436"}