{"id":2344,"url":"https://github.com/tootbot/tootbot","last_synced_at":"2026-05-31T21:30:20.233Z","repository":{"id":55462905,"uuid":"87825539","full_name":"tootbot/tootbot","owner":"tootbot","description":"A multi-user Mastodon client for iOS.","archived":false,"fork":false,"pushed_at":"2017-05-01T13:42:43.000Z","size":943,"stargazers_count":31,"open_issues_count":7,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-05-12T12:05:22.190Z","etag":null,"topics":["ios","ios-app","mastodon","mastodon-app","multi-user","swift","xcode"],"latest_commit_sha":null,"homepage":"https://github.com/tootbot/tootbot","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tootbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2017-04-10T15:14:22.000Z","updated_at":"2026-01-27T03:56:17.000Z","dependencies_parsed_at":"2022-08-15T00:50:49.686Z","dependency_job_id":null,"html_url":"https://github.com/tootbot/tootbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tootbot/tootbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tootbot","download_url":"https://codeload.github.com/tootbot/tootbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33356136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"online","status_checked_at":"2026-05-22T02:00:06.671Z","response_time":265,"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":null,"packages":[],"commits":{"id":1255414,"full_name":"tootbot/tootbot","default_branch":"master","total_commits":104,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":52.0,"dds":0.125,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-05-28T20:02:27.096Z","last_synced_commit":"92e3d9c8156070cda74f5934c6753c51b7312908","created_at":"2023-04-05T14:47:10.219Z","updated_at":"2026-05-28T20:02:27.053Z","committers":[{"name":"Alexsander Akers","email":"me@a2.io","login":"a2","count":91},{"name":"Michał Kałużny","email":"maku@justmaku.org","login":"justMaku","count":13}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-30T00:00:22.241Z","repositories_count":6249180,"commits_count":883856536,"contributors_count":34996348,"owners_count":1160796,"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":"tootbot/tootbot","html_url":"https://github.com/tootbot/tootbot","last_synced_at":"2026-05-02T07:03:29.906Z","status":"error","issues_count":13,"pull_requests_count":33,"avg_time_to_close_issue":246807.42857142858,"avg_time_to_close_pull_request":38916.125,"issues_closed_count":7,"pull_requests_closed_count":32,"pull_request_authors_count":2,"issue_authors_count":1,"avg_comments_per_issue":0.07692307692307693,"avg_comments_per_pull_request":0.030303030303030304,"merged_pull_requests_count":31,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:42:03.107Z","updated_at":"2026-05-02T07:03:29.906Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tootbot%2Ftootbot/issues","issue_labels_count":{"table":{}},"pull_request_labels_count":{"table":{}},"issue_author_associations_count":{"table":{"CONTRIBUTOR":13}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":33}},"issue_authors":{"table":{"a2":13}},"pull_request_authors":{"table":{"a2":32,"justMaku":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-22T00:00:21.018Z","repositories_count":14664160,"issues_count":34160189,"pull_requests_count":111783999,"authors_count":11269479,"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":{}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{}},"past_year_pull_request_author_associations_count":{"table":{}},"past_year_issue_authors":{"table":{}},"past_year_pull_request_authors":{"table":{}},"maintainers":[],"active_maintainers":[]}},"events":{"total":{"WatchEvent":2},"last_year":{"WatchEvent":1}},"keywords":["ios","ios-app","mastodon","mastodon-app","multi-user","swift","xcode"],"dependencies":[{"ecosystem":"cocoapods","filepath":"Podfile","sha":null,"kind":"manifest","created_at":"2022-08-15T00:50:49.166Z","updated_at":"2022-08-15T00:50:49.166Z","repository_link":"https://github.com/tootbot/tootbot/blob/master/Podfile","dependencies":[{"id":1722531276,"package_name":"Axt","ecosystem":"cocoapods","requirements":"~\u003e 0.0.1","direct":true,"kind":"runtime","optional":false},{"id":1722531277,"package_name":"Freddy","ecosystem":"cocoapods","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":1722531278,"package_name":"KeyboardLayoutGuide","ecosystem":"cocoapods","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":1722531279,"package_name":"ReactiveCocoa","ecosystem":"cocoapods","requirements":"~\u003e 5.0.0","direct":true,"kind":"runtime","optional":false},{"id":1722531280,"package_name":"ReactiveSwift","ecosystem":"cocoapods","requirements":"~\u003e 1.1.1","direct":true,"kind":"runtime","optional":false},{"id":1722531281,"package_name":"SAMKeychain","ecosystem":"cocoapods","requirements":"~\u003e 1.5.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"cocoapods","filepath":"Podfile.lock","sha":null,"kind":"lockfile","created_at":"2022-08-15T00:50:49.247Z","updated_at":"2022-08-15T00:50:49.247Z","repository_link":"https://github.com/tootbot/tootbot/blob/master/Podfile.lock","dependencies":[{"id":1722532642,"package_name":"Alamofire","ecosystem":"cocoapods","requirements":"4.4.0","direct":false,"kind":"runtime","optional":false},{"id":1722532643,"package_name":"Axt","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722532644,"package_name":"Freddy","ecosystem":"cocoapods","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722532645,"package_name":"KeyboardLayoutGuide","ecosystem":"cocoapods","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722532646,"package_name":"Moya","ecosystem":"cocoapods","requirements":"8.0.3","direct":false,"kind":"runtime","optional":false},{"id":1722532647,"package_name":"PINCache","ecosystem":"cocoapods","requirements":"2.3","direct":false,"kind":"runtime","optional":false},{"id":1722532648,"package_name":"PINRemoteImage","ecosystem":"cocoapods","requirements":"2.1.4","direct":false,"kind":"runtime","optional":false},{"id":1722532649,"package_name":"ReactiveCocoa","ecosystem":"cocoapods","requirements":"5.0.3","direct":false,"kind":"runtime","optional":false},{"id":1722532650,"package_name":"ReactiveSwift","ecosystem":"cocoapods","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":1722532651,"package_name":"Result","ecosystem":"cocoapods","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":1722532652,"package_name":"SAMKeychain","ecosystem":"cocoapods","requirements":"1.5.2","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-15T00:50:49.410Z","updated_at":"2022-08-15T00:50:49.410Z","repository_link":"https://github.com/tootbot/tootbot/blob/master/Gemfile","dependencies":[{"id":1722534773,"package_name":"cocoapods","ecosystem":"rubygems","requirements":"~\u003e 1.2","direct":true,"kind":"runtime","optional":false},{"id":1722534774,"package_name":"danger","ecosystem":"rubygems","requirements":"~\u003e 5.0.0","direct":true,"kind":"runtime","optional":false},{"id":1722534775,"package_name":"danger-linear_history","ecosystem":"rubygems","requirements":"~\u003e 0.0.2","direct":true,"kind":"runtime","optional":false},{"id":1722534776,"package_name":"pry","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":1722534777,"package_name":"rb-readline","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile.lock","sha":null,"kind":"lockfile","created_at":"2022-08-15T00:50:49.552Z","updated_at":"2022-08-15T00:50:49.552Z","repository_link":"https://github.com/tootbot/tootbot/blob/master/Gemfile.lock","dependencies":[{"id":1722534857,"package_name":"CFPropertyList","ecosystem":"rubygems","requirements":"2.3.5","direct":false,"kind":"runtime","optional":false},{"id":1722534858,"package_name":"activesupport","ecosystem":"rubygems","requirements":"4.2.8","direct":false,"kind":"runtime","optional":false},{"id":1722534859,"package_name":"addressable","ecosystem":"rubygems","requirements":"2.5.1","direct":false,"kind":"runtime","optional":false},{"id":1722534860,"package_name":"claide","ecosystem":"rubygems","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722534861,"package_name":"claide-plugins","ecosystem":"rubygems","requirements":"0.9.2","direct":false,"kind":"runtime","optional":false},{"id":1722534862,"package_name":"cocoapods","ecosystem":"rubygems","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":1722534863,"package_name":"cocoapods-core","ecosystem":"rubygems","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":1722534864,"package_name":"cocoapods-deintegrate","ecosystem":"rubygems","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722534865,"package_name":"cocoapods-downloader","ecosystem":"rubygems","requirements":"1.1.3","direct":false,"kind":"runtime","optional":false},{"id":1722534866,"package_name":"cocoapods-plugins","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534867,"package_name":"cocoapods-search","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534868,"package_name":"cocoapods-stats","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534869,"package_name":"cocoapods-trunk","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":1722534870,"package_name":"cocoapods-try","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":1722534871,"package_name":"coderay","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":1722534872,"package_name":"colored2","ecosystem":"rubygems","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":1722534873,"package_name":"cork","ecosystem":"rubygems","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":1722534874,"package_name":"danger","ecosystem":"rubygems","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534875,"package_name":"danger-linear_history","ecosystem":"rubygems","requirements":"0.0.2","direct":false,"kind":"runtime","optional":false},{"id":1722534876,"package_name":"danger-plugin-api","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534877,"package_name":"escape","ecosystem":"rubygems","requirements":"0.0.4","direct":false,"kind":"runtime","optional":false},{"id":1722534878,"package_name":"faraday","ecosystem":"rubygems","requirements":"0.12.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722534879,"package_name":"faraday-http-cache","ecosystem":"rubygems","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":1722534880,"package_name":"fourflusher","ecosystem":"rubygems","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":1722534881,"package_name":"fuzzy_match","ecosystem":"rubygems","requirements":"2.0.4","direct":false,"kind":"runtime","optional":false},{"id":1722534882,"package_name":"gh_inspector","ecosystem":"rubygems","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":1722534883,"package_name":"git","ecosystem":"rubygems","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":1722534884,"package_name":"i18n","ecosystem":"rubygems","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":1722534885,"package_name":"kramdown","ecosystem":"rubygems","requirements":"1.13.2","direct":false,"kind":"runtime","optional":false},{"id":1722534886,"package_name":"method_source","ecosystem":"rubygems","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":1722534887,"package_name":"minitest","ecosystem":"rubygems","requirements":"5.10.1","direct":false,"kind":"runtime","optional":false},{"id":1722534888,"package_name":"molinillo","ecosystem":"rubygems","requirements":"0.5.7","direct":false,"kind":"runtime","optional":false},{"id":1722534889,"package_name":"multipart-post","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":1722534890,"package_name":"nanaimo","ecosystem":"rubygems","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":1722534891,"package_name":"nap","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":1722534892,"package_name":"netrc","ecosystem":"rubygems","requirements":"0.7.8","direct":false,"kind":"runtime","optional":false},{"id":1722534893,"package_name":"octokit","ecosystem":"rubygems","requirements":"4.7.0","direct":false,"kind":"runtime","optional":false},{"id":1722534894,"package_name":"open4","ecosystem":"rubygems","requirements":"1.3.4","direct":false,"kind":"runtime","optional":false},{"id":1722534895,"package_name":"pry","ecosystem":"rubygems","requirements":"0.10.4","direct":false,"kind":"runtime","optional":false},{"id":1722534896,"package_name":"public_suffix","ecosystem":"rubygems","requirements":"2.0.5","direct":false,"kind":"runtime","optional":false},{"id":1722534897,"package_name":"rb-readline","ecosystem":"rubygems","requirements":"0.5.4","direct":false,"kind":"runtime","optional":false},{"id":1722534898,"package_name":"ruby-macho","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":1722534899,"package_name":"sawyer","ecosystem":"rubygems","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":1722534900,"package_name":"slop","ecosystem":"rubygems","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":1722534901,"package_name":"terminal-table","ecosystem":"rubygems","requirements":"1.7.3","direct":false,"kind":"runtime","optional":false},{"id":1722534902,"package_name":"thread_safe","ecosystem":"rubygems","requirements":"0.3.6","direct":false,"kind":"runtime","optional":false},{"id":1722534903,"package_name":"tzinfo","ecosystem":"rubygems","requirements":"1.2.3","direct":false,"kind":"runtime","optional":false},{"id":1722534904,"package_name":"unicode-display_width","ecosystem":"rubygems","requirements":"1.1.3","direct":false,"kind":"runtime","optional":false},{"id":1722534905,"package_name":"xcodeproj","ecosystem":"rubygems","requirements":"1.4.4","direct":false,"kind":"runtime","optional":false}]}],"score":4.330733340286331,"created_at":"2023-04-05T14:24:50.184Z","updated_at":"2026-05-31T21:30:20.233Z","avatar_url":"https://github.com/tootbot.png","language":"Swift","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/2344","html_url":"https://summary.ecosyste.ms/projects/2344"}