{"id":166143,"name":"ABAP","description":"Code for downloading and working with data from the African Bird Atlas Project.","url":"https://github.com/africabirddata/abap","last_synced_at":"2026-04-03T12:30:36.020Z","repository":{"id":38239678,"uuid":"436231818","full_name":"AfricaBirdData/ABAP","owner":"AfricaBirdData","description":"Code for downloading and working with data from the African Bird Atlas Project","archived":false,"fork":false,"pushed_at":"2025-09-19T07:41:18.000Z","size":416,"stargazers_count":11,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-29T00:11:25.199Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"R","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/AfricaBirdData.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","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,"dco":null,"cla":null}},"created_at":"2021-12-08T12:01:55.000Z","updated_at":"2025-09-19T07:41:22.000Z","dependencies_parsed_at":"2023-09-28T16:12:38.440Z","dependency_job_id":"ac633b99-cfa0-4947-b6b0-75a5457c32ba","html_url":"https://github.com/AfricaBirdData/ABAP","commit_stats":{"total_commits":171,"total_committers":4,"mean_commits":42.75,"dds":0.1286549707602339,"last_synced_commit":"f2c9b44df5d42a7f2ce0c1a7bd05078e2c9006f4"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AfricaBirdData/ABAP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30274843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T20:45:49.896Z","status":"ssl_error","status_checked_at":"2026-03-08T20:45:49.525Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"AfricaBirdData","name":"AfricaBirdData","uuid":"82078819","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/82078819?v=4","repositories_count":3,"last_synced_at":"2023-03-06T14:53:59.609Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AfricaBirdData","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-16T17:06:22.743Z","updated_at":"2023-03-06T14:53:59.611Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData/repositories"},"packages":[{"id":11729200,"name":"github.com/africabirddata/abap","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["GPL-1.0+"],"repository_url":"https://github.com/africabirddata/abap","keywords_array":[],"namespace":null,"versions_count":6,"first_release_published_at":"2023-01-03T07:37:47.000Z","latest_release_published_at":"2024-07-31T11:36:47.000Z","latest_release_number":"v0.6.2","last_synced_at":"2025-12-25T12:01:20.266Z","created_at":"2025-06-04T10:54:22.675Z","updated_at":"2025-12-25T12:01:20.266Z","registry_url":"https://pkg.go.dev/github.com/africabirddata/abap","install_command":"go get github.com/africabirddata/abap","documentation_url":"https://pkg.go.dev/github.com/africabirddata/abap#section-documentation","metadata":{},"repo_metadata":{"id":38239678,"uuid":"436231818","full_name":"AfricaBirdData/ABAP","owner":"AfricaBirdData","description":"Code for downloading and working with data from the African Bird Atlas Project","archived":false,"fork":false,"pushed_at":"2025-09-19T07:41:18.000Z","size":416,"stargazers_count":11,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-03T19:38:24.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"R","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/AfricaBirdData.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","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,"dco":null,"cla":null}},"created_at":"2021-12-08T12:01:55.000Z","updated_at":"2025-09-19T07:41:22.000Z","dependencies_parsed_at":"2023-09-28T16:12:38.440Z","dependency_job_id":"ac633b99-cfa0-4947-b6b0-75a5457c32ba","html_url":"https://github.com/AfricaBirdData/ABAP","commit_stats":{"total_commits":171,"total_committers":4,"mean_commits":42.75,"dds":0.1286549707602339,"last_synced_commit":"f2c9b44df5d42a7f2ce0c1a7bd05078e2c9006f4"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AfricaBirdData/ABAP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005488,"owners_count":26083912,"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-10-10T02:00:06.843Z","response_time":62,"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"},"tags":[{"name":"v0.6.2","sha":"f2c9b44df5d42a7f2ce0c1a7bd05078e2c9006f4","kind":"commit","published_at":"2024-07-31T11:36:47.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.6.2","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.2/manifests"},{"name":"v0.6.0","sha":"9524d1b396528ad79b804e056996c1e6e98ff1a0","kind":"commit","published_at":"2023-09-29T13:47:48.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.6.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"75c978ec09ade11623430024dd84e8a800283ed5","kind":"commit","published_at":"2023-09-21T14:07:57.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.5.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.5.0/manifests"},{"name":"v0.4.1","sha":"70d90e19faeee7b972274b6d3d9bf267502ad7ad","kind":"commit","published_at":"2023-05-12T06:56:36.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.4.1","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"5d97b09c7b3db3d321d3aeb1bc03b84f132988fb","kind":"commit","published_at":"2023-04-05T07:06:54.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.4.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"2b527fd32072aa390afdb5bb787a034ce0e0ed1c","kind":"commit","published_at":"2023-01-03T07:37:47.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.3.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.3.0/manifests"}]},"repo_metadata_updated_at":"2025-10-12T13:16:47.079Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.764254255794306,"dependent_packages_count":5.401293307900869,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.582773781847587},"purl":"pkg:golang/github.com/africabirddata/abap","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/africabirddata/abap","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/africabirddata/abap","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/africabirddata/abap/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-20T02:55:11.070Z","issues_count":6,"pull_requests_count":32,"avg_time_to_close_issue":14717355.5,"avg_time_to_close_pull_request":564147.0,"issues_closed_count":4,"pull_requests_closed_count":32,"pull_request_authors_count":2,"issue_authors_count":4,"avg_comments_per_issue":5.5,"avg_comments_per_pull_request":0.09375,"merged_pull_requests_count":30,"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,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/africabirddata%2Fabap/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fafricabirddata%2Fabap/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fafricabirddata%2Fabap/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fafricabirddata%2Fabap/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fafricabirddata%2Fabap/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fafricabirddata%2Fabap/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2018154,"maintainers_count":0,"namespaces_count":758316,"keywords_count":111972,"github":"golang","metadata":{"funded_packages_count":52867},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-12-27T06:20:42.260Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":11729189,"name":"github.com/AfricaBirdData/ABAP","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["GPL-1.0+"],"repository_url":"https://github.com/AfricaBirdData/ABAP","keywords_array":[],"namespace":null,"versions_count":6,"first_release_published_at":"2025-06-04T10:54:23.102Z","latest_release_published_at":"2024-07-31T11:36:47.000Z","latest_release_number":"v0.6.2","last_synced_at":"2025-12-25T12:01:20.539Z","created_at":"2025-06-04T10:54:21.705Z","updated_at":"2025-12-25T12:01:20.540Z","registry_url":"https://pkg.go.dev/github.com/AfricaBirdData/ABAP","install_command":"go get github.com/AfricaBirdData/ABAP","documentation_url":"https://pkg.go.dev/github.com/AfricaBirdData/ABAP#section-documentation","metadata":{},"repo_metadata":{"id":38239678,"uuid":"436231818","full_name":"AfricaBirdData/ABAP","owner":"AfricaBirdData","description":"Code for downloading and working with data from the African Bird Atlas Project","archived":false,"fork":false,"pushed_at":"2025-09-19T07:41:18.000Z","size":416,"stargazers_count":11,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-10T23:03:02.851Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"R","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/AfricaBirdData.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","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,"dco":null,"cla":null}},"created_at":"2021-12-08T12:01:55.000Z","updated_at":"2025-09-19T07:41:22.000Z","dependencies_parsed_at":"2023-09-28T16:12:38.440Z","dependency_job_id":"ac633b99-cfa0-4947-b6b0-75a5457c32ba","html_url":"https://github.com/AfricaBirdData/ABAP","commit_stats":{"total_commits":171,"total_committers":4,"mean_commits":42.75,"dds":0.1286549707602339,"last_synced_commit":"f2c9b44df5d42a7f2ce0c1a7bd05078e2c9006f4"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AfricaBirdData/ABAP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011466,"owners_count":26084947,"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-10-12T02:00:06.719Z","response_time":53,"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_record":{"login":"AfricaBirdData","name":"AfricaBirdData","uuid":"82078819","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/82078819?v=4","repositories_count":3,"last_synced_at":"2023-03-06T14:53:59.609Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AfricaBirdData","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-16T17:06:22.743Z","updated_at":"2023-03-06T14:53:59.611Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AfricaBirdData/repositories"},"tags":[{"name":"v0.6.2","sha":"f2c9b44df5d42a7f2ce0c1a7bd05078e2c9006f4","kind":"commit","published_at":"2024-07-31T11:36:47.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.6.2","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.2/manifests"},{"name":"v0.6.0","sha":"9524d1b396528ad79b804e056996c1e6e98ff1a0","kind":"commit","published_at":"2023-09-29T13:47:48.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.6.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"75c978ec09ade11623430024dd84e8a800283ed5","kind":"commit","published_at":"2023-09-21T14:07:57.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.5.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.5.0/manifests"},{"name":"v0.4.1","sha":"70d90e19faeee7b972274b6d3d9bf267502ad7ad","kind":"commit","published_at":"2023-05-12T06:56:36.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.4.1","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"5d97b09c7b3db3d321d3aeb1bc03b84f132988fb","kind":"commit","published_at":"2023-04-05T07:06:54.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.4.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"2b527fd32072aa390afdb5bb787a034ce0e0ed1c","kind":"commit","published_at":"2023-01-03T07:37:47.000Z","download_url":"https://codeload.github.com/AfricaBirdData/ABAP/tar.gz/v0.3.0","html_url":"https://github.com/AfricaBirdData/ABAP/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AfricaBirdData/ABAP@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AfricaBirdData%2FABAP/tags/v0.3.0/manifests"}]},"repo_metadata_updated_at":"2025-10-12T13:16:55.634Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.764254255794306,"dependent_packages_count":5.401293307900869,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.582773781847587},"purl":"pkg:golang/github.com/%21africa%21bird%21data/%21a%21b%21a%21p","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/AfricaBirdData/ABAP","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/AfricaBirdData/ABAP","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/AfricaBirdData/ABAP/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-20T02:55:11.070Z","issues_count":6,"pull_requests_count":32,"avg_time_to_close_issue":14717355.5,"avg_time_to_close_pull_request":564147.0,"issues_closed_count":4,"pull_requests_closed_count":32,"pull_request_authors_count":2,"issue_authors_count":4,"avg_comments_per_issue":5.5,"avg_comments_per_pull_request":0.09375,"merged_pull_requests_count":30,"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,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/africabirddata%2Fabap/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAfricaBirdData%2FABAP/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAfricaBirdData%2FABAP/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAfricaBirdData%2FABAP/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAfricaBirdData%2FABAP/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAfricaBirdData%2FABAP/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2018154,"maintainers_count":0,"namespaces_count":758316,"keywords_count":111972,"github":"golang","metadata":{"funded_packages_count":52867},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-12-27T06:20:42.260Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":1462544,"full_name":"africabirddata/abap","default_branch":"main","total_commits":172,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":43.0,"dds":0.12790697674418605,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2025-12-26T23:50:57.893Z","last_synced_commit":"9259bc6c3efa67a88e0c5b77ede9132c76ca235a","created_at":"2024-01-04T00:19:38.155Z","updated_at":"2025-12-26T23:50:57.864Z","committers":[{"name":"patchcervan","email":"francerper@gmail.com","login":"patchcervan","count":150},{"name":"Dominic Henry","email":"dominichenry@gmail.com","login":"DomHenry","count":19},{"name":"Alan Lee","email":"alan.tk.lee@googlemail.com","login":"bluehill","count":2},{"name":"Res","email":"res.altwegg@gmail.com","login":"resaltwegg","count":1}],"past_year_committers":[{"name":"patchcervan","email":"francerper@gmail.com","login":"patchcervan","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/africabirddata%2Fabap/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-27T00:00:17.362Z","repositories_count":6133519,"commits_count":926232575,"contributors_count":35948682,"owners_count":1126264,"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_stats":{"full_name":"africabirddata/abap","html_url":"https://github.com/africabirddata/abap","last_synced_at":"2025-12-07T03:00:35.514Z","status":"error","issues_count":6,"pull_requests_count":32,"avg_time_to_close_issue":14717355.5,"avg_time_to_close_pull_request":564147.0,"issues_closed_count":4,"pull_requests_closed_count":32,"pull_request_authors_count":2,"issue_authors_count":4,"avg_comments_per_issue":5.5,"avg_comments_per_pull_request":0.09375,"merged_pull_requests_count":30,"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":"2024-01-04T00:19:51.856Z","updated_at":"2025-12-07T03:00:35.514Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/africabirddata%2Fabap","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/africabirddata%2Fabap/issues","issue_labels_count":{"enhancement":3,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":4,"NONE":2},"pull_request_author_associations_count":{"CONTRIBUTOR":32},"issue_authors":{"DomHenry":3,"patchcervan":1,"rion-saeon":1,"JamesSwingler":1},"pull_request_authors":{"DomHenry":16,"patchcervan":16},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-27T00:00:07.724Z","repositories_count":12440495,"issues_count":35629681,"pull_requests_count":116953438,"authors_count":11076183,"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":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{},"last_year":{}},"keywords":[],"dependencies":[{"ecosystem":"cran","filepath":"DESCRIPTION","sha":null,"kind":"manifest","created_at":"2023-02-08T12:15:48.759Z","updated_at":"2023-02-08T12:15:48.759Z","repository_link":"https://github.com/AfricaBirdData/ABAP/blob/main/DESCRIPTION","dependencies":[{"id":7451148238,"package_name":"R","ecosystem":"cran","requirements":"\u003e= 2.10","direct":true,"kind":"depends","optional":false},{"id":7451148239,"package_name":"dplyr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148240,"package_name":"httr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148241,"package_name":"lifecycle","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148242,"package_name":"lubridate","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148243,"package_name":"magrittr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148244,"package_name":"readr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148245,"package_name":"rgee","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148246,"package_name":"rjson","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148247,"package_name":"sf","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148248,"package_name":"tidyr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7451148249,"package_name":"spOccupancy","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7451148250,"package_name":"ubms","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7451148251,"package_name":"unmarked","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/R-CMD-check.yaml","sha":null,"kind":"manifest","created_at":"2023-09-28T16:12:38.125Z","updated_at":"2023-09-28T16:12:38.125Z","repository_link":"https://github.com/AfricaBirdData/ABAP/blob/main/.github/workflows/R-CMD-check.yaml","dependencies":[{"id":13998162873,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13998162874,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13998162875,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13998162876,"package_name":"r-lib/actions/setup-r-dependencies","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13998162877,"package_name":"r-lib/actions/check-r-package","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":null,"created_at":"2024-01-04T00:08:05.585Z","updated_at":"2026-04-03T12:30:36.030Z","avatar_url":"https://github.com/AfricaBirdData.png","language":"R","category":"Biosphere","sub_category":"Avian Monitoring and Analysis","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\",\n  eval = TRUE\n)\n```\n\n# ABAP\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/AfricaBirdData/ABAP/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/AfricaBirdData/ABAP/actions/workflows/R-CMD-check.yaml)\n[![Codecov test coverage](https://codecov.io/gh/AfricaBirdData/ABAP/branch/main/graph/badge.svg)](https://app.codecov.io/gh/AfricaBirdData/ABAP?branch=main)\n\u003c!-- badges: end --\u003e\n\nThis packages provides functionality to access, download, and manipulate data from\nthe [African Bird Atlas Project](http://www.birdmap.africa/). It is possible to\ndownload these same data using the [ABAP API](api.birdmap.africa), but being able\nto pull these data straight into R, in a standard format, should make them more\naccessible, easier to analyse, and eventually make our analyses more reliable and \nreproducible.\n\nThere is another package named [`CWAC`](https://github.com/AfricaBirdData/CWAC)\nthat provides similar functionality, but now to download count data from the\nCoordinated Waterbird Counts project. In addition, there is a companion package\nthe [`ABDtools`](https://github.com/AfricaBirdData/ABDtools) package, which adds\nthe functionality necessary to annotate different data formats (points and polygons)\nwith environmental information from the \n[Google Earth Engine data catalog](https://developers.google.com/earth-engine/datasets).\n\n\n## INSTRUCTIONS TO INSTALL\n\nTo install `ABAP` from GitHub using the [remotes](https://github.com/r-lib/remotes) package, run:\n\n```{r, eval = FALSE}\ninstall.packages(\"remotes\")\nremotes::install_github(\"AfricaBirdData/ABAP\")\n```\n\n## DOWNLOAD ABAP DATA FOR A SPECIES\n\nA typical workflow entails defining a region and a species of interest,\ne.g. say we are interested in the occupancy of the African Black Duck in\nthe North West province of South Africa:\n\nFirst find the ABAP code for the species:\n\n```{r}\nlibrary(ABAP)\nlibrary(sf)\nlibrary(dplyr, warn.conflicts = FALSE)\n\n# We can search for all duck species\nducks \u003c- searchAbapSpecies(\"Duck\")\n\n# Then we can extract the code we are interested in\nducks[ducks$Common_species == \"African Black\", \"Spp\"]\n\n```\n\nWith our code (95) we can download the data recorded for the region of interest:\n\n```{r}\nmy_det_data \u003c- getAbapData(.spp_code = 95, .region_type = \"province\", .region = \"North West\")\n```\n\nGreat, but we may be interested in detection data in a set of pentads that do not\ncorrespond to any particular region. What do we do then? Well, although `getAbapData()`\nallows you to download data from any one pentad, it is not advised to use this\nfunctionality to loop over a set of pentads (unless it is a small set).\nThis is because the algorithm will create a query to the remote database for each\npentad, resulting in a very slow process. \n\nThere are two ways of making this process more efficient:\n\n### A spatial subset \n\nOne way to obtain data for a set of pentads is to download a larger region that\ncontains our pentads of interest and then filter only those we are interested in.\n\nIf we know the code for the pentads of interest we could just go ahead and filter\nour data. For demonstration purposes let's subset ten random pentads in the North West \nprovince using the data we just downloaded. This pentad selection probably \ndoesn't make much sense, but hopefully it shows the point.\n\n```{r}\nset.seed(8476)\n\npentads_sel \u003c- unique(my_det_data$Pentad) %\u003e% \n  sample(10)\n\n# We can now subset those pentads from the original data\ndet_data_sel \u003c- my_det_data[my_det_data$Pentad %in% pentads_sel,]\n\n```\n\nHowever, what we usually have is some sort of polygon defining a region of interest.\nIf we had an [sf](https://r-spatial.github.io/sf/) polygon, we\ncould extract the pentads contained in the polygon with\n\n```{r}\n# We first download all in the North West province pentads (to match our\n# original selection above as a spatial object.\nnw_pentads \u003c- getRegionPentads(.region_type = \"province\", .region = \"North West\")\n\n# Here I am just going to create a polygon randomly, but usually you have a polygon\n# that makes sense to you (possibly you would load it with something like\n# my_pol \u003c- sf::read_sf(\"path/to/my/polygon.shp\") or something similar)\nmy_pol \u003c- data.frame(lon = c(25.1, 27.1),\n                     lat = c(-27.2, -25.2)) %\u003e%\n    st_as_sf(coords = c(\"lon\", \"lat\"),\n             crs = 4326) %\u003e%  # this is WGS84\n    st_bbox() %\u003e%\n    st_as_sfc()\n\n# Extract pentads within your polygon\nmy_pentads \u003c- nw_pentads[my_pol,]  # Convenient way of sub-setting spatial objects!\n\n# Subset ABAP data that falls within your polygon\ndet_data_sel \u003c- my_det_data %\u003e%\n    filter(Pentad %in% my_pentads[,\"pentad\"])\n\n# Plots\nplot(st_geometry(nw_pentads), axes = TRUE, lwd = 0.1, cex.axis = 0.7)\nplot(st_geometry(my_pentads), add = TRUE, col = \"red\", lwd = 0.1)\nplot(st_geometry(my_pol), add = TRUE, border = \"yellow\")\n```\n\n### Use a pentad group\n\nIf we specify \"group\" in the `.region` argument `getAbapData()` returns all\nrecords for a specific group of pentads. Now, groups of pentads must be first \ncreated from the birdmap.africa websites (e.g., \\href{https://sabap2.birdmap.africa/}{SABAP2} or\n\\href{https://kenya.birdmap.africa/}{Kenya Bird Map}). For this, you will need\nto create an account. Once logged in, you can create groups from the coverage menu.\nThen, these groups can be viewed from you home menu. The name of the group is the\nlast part of the URL displayed in the browser's navigation bar. For example, \nI created a group named \"test_group\", and the URL for this group is \n`⁠https://kenya.birdmap.africa/coverage/group/xxxx_tst_grp`⁠. The group name th\nat we need to pass on to the `getAbapData()` function is `xxxx_tst_grp`, the last\npart of the URL, where xxxx is your citizen scientist number (provided when creating an account).\n\n```{r eval=FALSE}\n# Assuming we have created a group named \"test_group\" with URL ending in\n# \"xxxx_tst_grp\" our getAbapData() call is\nmy_data \u003c- getAbapData(.spp_code = 95, .region_type = \"group\", .region = \"xxxx_tst_grp\")\n\n```\n\n## DOWNLOAD ABAP DATA FOR MULTIPLE SPECIES\n\nAt the moment, the process of downloading multi-species data with the `ABAP` package\nconsists of combining visit data with card record data. This means we first need to:\n\n1. Decide on a spatial and temporal selection of data,\n2. Download detection data for any species (just as we saw above),\n3. Extract all cards that correspond to the spatial and temporal selection we made\n4. Loop through all card numbers, download the data associated with them, and combine\n\nFor example, if we wanted to download all data for all species in the Limpopo\nregion of South Africa for the years 2018 to 2020.\n\n```{r eval=FALSE}\n# Download detection data for any species. These data contain the code for all\n# the cards submitted to the project, regardless of the species we download.\nsp_data \u003c- getAbapData(.spp = 151, \n                       .region_type = \"province\",\n                       .region = \"Limpopo\",\n                       .years = 2018:2020,\n                       .adhoc = FALSE)\n\n\n# From these data we can extract the cards we are interested in.\nmy_cards \u003c- unique(sp_data$CardNo)\n\n# Now, this is the painful part, we need to download the data from all the cards\n# using a loop\n\n# Create an empty data frame\ncard_data \u003c- data.frame()\n\n# Loop through cards and download data\nfor(i in seq_along(my_cards)){\n    \n    dd \u003c- getCardRecords(.CardNo = my_cards[i])\n    card_data \u003c- bind_rows(card_data, dd)\n    \n}\n\n# To finish up and get a complete data set, we could join the species data with\n# the card data (note that we remove species info from pentad data, because it is\n# related to the first species we selected \"randomly\")\nfinal_data \u003c- full_join(pentad_data %\u003e% \n                            select(-c(\"Spp\", \"Sequence\", \"Common_name\", \"Taxonomic_name\")),\n                        card_data,\n                        by = \"CardNo\")\n\n```\n\nIn the future we would like to make this process easier by allowing multi-card\nqueries to the database, which would make the process much more efficient. But\nfor now this is usable workaround.\n\n\n## INSTRUCTIONS TO CONTRIBUTE CODE\n\nFirst clone the repository to your local machine:\n\n- In RStudio, create a new project\n- In the ‘Create project’ menu, select ‘Version Control’/‘Git’\n- Copy the repository URL (click on the ‘Code’ green button and\n        copy the link)\n- Choose the appropriate directory and ‘Create project’\n- Remember to pull the latest version regularly\n\nFor site owners:\n\nThere is the danger of multiple people working simultaneously on the\nproject code. If you make changes locally on your computer and, before\nyou push your changes, others push theirs, there might be conflicts.\nThis is because the HEAD pointer in the main branch has moved since you\nstarted working.\n\nTo deal with these lurking issues, I would suggest opening and working\non a topic branch. This is a just a regular branch that has a short\nlifespan. In steps:\n\n-   Open a branch at your local machine\n-   Push to the remote repo\n-   Make your changes in your local machine\n-   Commit and push to remote\n-   Create pull request:\n    -   In the GitHub repo you will now see an option that notifies of\n        changes in a branch: click compare and pull request.\n-   Delete the branch. When you are finished, you will have to delete the new\n    branch in the remote repo (GitHub) and also in your local machine. In your\n    local machine you have to use Git directly, because apparently RStudio \n    doesn´t do it:\n    -   In your local machine, change to master branch.\n    -   Either use the Git GUI (go to branches/delete/select\n        branch/push).\n    -   Or use the console typing ‘git branch -d your\\_branch\\_name’.\n    -   It might also be necessary to prune remote branches with 'git remote prune origin'.\n\nOpening branches is quick and easy, so there is no harm in opening\nmultiple branches a day. However, it is important to merge and delete\nthem often to keep things tidy. Git provides functionality to deal with\nconflicting branches. More about branches here:\n\n\u003chttps://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell\u003e\n\nAnother idea is to use the ‘issues’ tab that you find in the project\nheader. There, we can identify issues with the package, assign tasks and\nwarn other contributors that we will be working on the code.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/166143","html_url":"https://ost.ecosyste.ms/projects/166143"}