{"id":15030482,"url":"https://github.com/cgeo/cgeo","last_synced_at":"2026-06-04T07:01:24.725Z","repository":{"id":1577075,"uuid":"2028724","full_name":"cgeo/cgeo","owner":"cgeo","description":"c:geo - The powerful Android geocaching app.","archived":false,"fork":false,"pushed_at":"2026-05-29T21:05:54.000Z","size":491139,"stargazers_count":1519,"open_issues_count":807,"forks_count":589,"subscribers_count":76,"default_branch":"master","last_synced_at":"2026-05-29T23:06:11.130Z","etag":null,"topics":["android","cgeo","geocaching","opencaching"],"latest_commit_sha":null,"homepage":"www.cgeo.org","language":"Java","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/cgeo.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AQBS7UP76CXW2"}},"created_at":"2011-07-11T06:02:47.000Z","updated_at":"2026-05-29T21:05:59.000Z","dependencies_parsed_at":"2023-09-27T01:32:05.594Z","dependency_job_id":"3dde7e18-47ac-4431-932f-afa552475afe","html_url":"https://github.com/cgeo/cgeo","commit_stats":{"total_commits":14640,"total_committers":177,"mean_commits":82.71186440677967,"dds":0.8260245901639345,"last_synced_commit":"b1414836555ca6e8a6f7470b8a254f14e8045024"},"previous_names":[],"tags_count":236,"template":false,"template_full_name":null,"purl":"pkg:github/cgeo/cgeo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgeo%2Fcgeo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgeo%2Fcgeo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgeo%2Fcgeo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgeo%2Fcgeo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cgeo","download_url":"https://codeload.github.com/cgeo/cgeo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cgeo%2Fcgeo/sbom","scorecard":{"id":272381,"data":{"date":"2025-08-11","repo":{"name":"github.com/cgeo/cgeo","commit":"e22ac8e7e5ae37c782c9bac26c92867635ef12c2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":8,"reason":"Found 9/11 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 20 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.event.pull_request.head.label || github.ref ': .github/workflows/tests.yml:43","Warn: untrusted code checkout '${{ github.event.pull_request.head.sha }}': .github/workflows/tests.yml:138","Warn: untrusted code checkout '${{ github.event.pull_request.head.sha }}': .github/workflows/tests.yml:209","Warn: untrusted code checkout '${{ github.event.pull_request.head.sha }}': .github/workflows/tests.yml:31","Warn: untrusted code checkout '${{ github.event.pull_request.head.sha }}': .github/workflows/tests.yml:76"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/avd-build-and-cache.yml:1","Warn: no topLevel permission defined: .github/workflows/branch-merge.yml:1","Warn: topLevel 'actions' permission set to 'write': .github/workflows/issue-comment.yml:8","Warn: topLevel 'checks' permission set to 'write': .github/workflows/tests.yml:24","Warn: topLevel 'actions' permission set to 'write': .github/workflows/tests.yml:22","Warn: topLevel 'contents' permission set to 'write': .github/workflows/tests.yml:23","Warn: no topLevel permission defined: .github/workflows/unit-tests-rerun.yml:1","Warn: no topLevel permission defined: .github/workflows/unlock-unit-tests.yml:1","Warn: no topLevel permission defined: .github/workflows/watchdog.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Binary-Artifacts","score":8,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: main/project/simian/simian-2.3.35.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact market_20250805 not signed: https://api.github.com/repos/cgeo/cgeo/releases/237773764","Warn: release artifact market_20250725 not signed: https://api.github.com/repos/cgeo/cgeo/releases/235303331","Warn: release artifact market_20250720 not signed: https://api.github.com/repos/cgeo/cgeo/releases/233762043","Warn: release artifact market_20250717 not signed: https://api.github.com/repos/cgeo/cgeo/releases/233326871","Warn: release artifact market_20250514 not signed: https://api.github.com/repos/cgeo/cgeo/releases/218670407","Warn: release artifact market_20250805 does not have provenance: https://api.github.com/repos/cgeo/cgeo/releases/237773764","Warn: release artifact market_20250725 does not have provenance: https://api.github.com/repos/cgeo/cgeo/releases/235303331","Warn: release artifact market_20250720 does not have provenance: https://api.github.com/repos/cgeo/cgeo/releases/233762043","Warn: release artifact market_20250717 does not have provenance: https://api.github.com/repos/cgeo/cgeo/releases/233326871","Warn: release artifact market_20250514 does not have provenance: https://api.github.com/repos/cgeo/cgeo/releases/218670407"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/avd-build-and-cache.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/avd-build-and-cache.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/avd-build-and-cache.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/avd-build-and-cache.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/avd-build-and-cache.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/avd-build-and-cache.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/issue-comment.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/issue-comment.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:118: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:127: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:174: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:180: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:190: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:210: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:258: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:264: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:276: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:283: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:293: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:326: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:354: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:370: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/watchdog.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/watchdog.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/watchdog.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/watchdog.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/watchdog.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/watchdog.yml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/watchdog.yml:144: update your workflow using https://app.stepsecurity.io/secureworkflow/cgeo/cgeo/watchdog.yml/master?enable=pin","Info:   0 out of  15 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  16 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T13:42:43.269Z","repository_id":1577075,"created_at":"2025-08-17T13:42:43.270Z","updated_at":"2025-08-17T13:42:43.270Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33893323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"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"}},"keywords":["android","cgeo","geocaching","opencaching"],"created_at":"2024-09-24T20:13:28.248Z","updated_at":"2026-06-04T07:01:24.704Z","avatar_url":"https://github.com/cgeo.png","language":"Java","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=AQBS7UP76CXW2"],"categories":["Android Apps"],"sub_categories":["Android Travel"],"readme":"\u003cimg align=\"right\" src=\"main/src/main/res/mipmap-xxhdpi/ic_launcher_round.png\"\u003e\n\n# c:geo\n\n[c:geo](https://www.cgeo.org/) is an open-source, full-featured, always ready-to-go client for geocaching.com (unofficial).\nIt also offers basic support for other geocaching platforms.\nIt does not require a web browser or exports - just download and start right away.\n\n## Want to contribute?\n\nPerfect! Please **tell us in the [issue tracker](https://github.com/cgeo/cgeo/issues) before hacking** on your great new feature.\nIt would be bad for you to have implemented something great but we can't include it because it doesn't fit the existing architecture and code.\n\n### Starting points for contribution\n\nYou can also take a look at the [project page](https://github.com/cgeo/cgeo/projects) of our repository.\nWe have a list of [good first issues](https://github.com/cgeo/cgeo/contribute), that might be suitable for your first contribution, and a collection of [high priority issues](https://github.com/cgeo/cgeo/issues?q=is%3Aissue+is%3Aopen+label%3A%22Prio+-+High%22).\n\n## Project status\n\n[![Build Status](https://ci.cgeo.org/view/Continous%20Integration/job/cgeo-CI_commit-build/badge/icon)](https://ci.cgeo.org/view/Continous%20Integration/job/cgeo-CI_commit-build/)\u003cbr\u003e\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/7e23148260a94e248b928800497006db)](https://www.codacy.com/gh/cgeo/cgeo/dashboard)\u003cbr\u003e\n[![Crowdin](https://badges.crowdin.net/cgeo/localized.svg)](https://crowdin.com/project/cgeo)\n\n## Get the source\n\n**Fork** the [project source code](https://github.com/cgeo/cgeo), make changes to your clone, and [create a pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-pull-requests) afterwards.\n\nNote: make sure to really **fork** the source code, **do not** just clone the main c:geo repository. Then work locally with a clone of your fork.\nOtherwise you won't be able to bring your changes into c:geo later.\nIf you are a github / git beginner and don't know what this means, consult our [git/github setup page for beginners](https://github.com/cgeo/cgeo/wiki/Working-on-c%3Ageo-for-git-beginners).\n\n### Branches\n\n- `master` is for the development of new features. Nightly builds are created from this branch.\n- `release` is for all bug fixes of already existing features. So if a bug is reported in a released version, it should be fixed on this branch (and merged to `master` afterwards).\n\nNote: Regular merging of `release` to `master` (after changes have been done on `release`) is highly recommended to avoid unnecessary merge conflicts later on.\n\nA more complex bugfix can first be tested against the `master` branch and integrated in the nightly builds while kept compatible with the `release` branch for a later integration.\nSuch a procedure is [described in the wiki](https://github.com/cgeo/cgeo/wiki/How-to-get-a-bug-fix-into-the-release).\n\n## Setting up an IDE\n\nThe standard IDE for Android projects is Android Studio, which is based on IntelliJ IDEA.\nWe use it for the development of c:geo.\n\nDetails for setting up the IDE are described in the wiki (https://github.com/cgeo/cgeo/wiki/IDE).\n\n## Build\n\n### Prerequisites\n\n- [Android SDK](https://developer.android.com/studio) (latest version) including Google APIs (at least) V26, Google repository, and Android support repository. (File =\u003e Settings, Appearance \u0026 Behaviour =\u003e System Settings =\u003e Android SDK, Check \"Show Package Details\" on \"SDK Platforms\" tab and check subpackages as needed.)\n- If you use Microsoft Windows, [Google USB Driver](https://developer.android.com/sdk/win-usb.html) to install the application on the smartphone.\n- You need to provide several API keys for compiling the app (see following sections for details).\n\n### API keys\n\nFor the full usability of c:geo you need some API keys for Google Maps and the opencaching sites.\nYou can leave all entries in the configuration empty, but then Google Maps and the Opencaching sites will not work.\n\nFor using the Google Maps function, it is necessary to have a Google Maps API v2 key. For this, follow\n* [Maps SDK for Android: Get an API Key](https://developers.google.com/maps/documentation/android-sdk/get-api-key)\n\nThe key itself is free and you don't have to enter any credit card info (although the web form seems to force you to).\n\nTo be able to use Google Maps you need to use a Google API-enabled image, so make sure to select the right image for your emulator/device, otherwise Google Maps won't be offered as a map provider in c:geo.\n\nRequest your personal API key for the various [OpenCaching](https://www.opencaching.eu/) sites we support.\nIf you leave these blank, those networks will remain disabled.\n* [opencaching.de OKAPI signup](https://www.opencaching.de/okapi/signup.html)\n* [opencaching.pl OKAPI signup](https://opencaching.pl/okapi/signup.html)\n* [opencaching.ro OKAPI signup](https://www.opencaching.ro/okapi/signup.html)\n* [opencaching.nl OKAPI signup](https://www.opencaching.nl/okapi/signup.html)\n* [opencaching.us OKAPI signup](https://www.opencaching.us/okapi/signup.html)\n* [opencache.uk OKAPI signup](https://opencache.uk/okapi/signup.html)\n\nTo obtain an API key for [geocaching.su](https://geocaching.su/) you need to request access from [administration](https://geocaching.su/?pn=1).\nKeys are generated manually on request.\n\nThe key to retrieve data for Adventure Labs is not available publicly, so you will have to leave that entry empty, and you cannot test Adventure Labs in your development builds.\n\n### API keys installation\n\nFor c:geo we have a semi-automatic configuration:\n1. Copy `./templates/private.properties` to `./`\n2. Edit `private.properties` with your keys\n3. The `./main/src/main/res/values/keys.xml` is created on the gradle build and filled with the data from `private.properties`\n\nThe third point works only if the file `keys.xml` does not exist.\nWhen changing your API keys, you have to delete the `keys.xml` file.\n\nIf you want to fill the `keys.xml` by hand, copy `./main/templates/keys.xml` to `./main/src/main/res/values/`, then edit the copied `keys.xml`.\nFor each key, replace the value starting with `@` and ending with `@` (inclusive) with the key.\nIf a key is missing, remove the value and the leading and trailing `@`.\n\n### Building with gradle\n\nRun `gradlew` from the root directory of the git repository.\nThat will install the necessary build framework and display how to build c:geo.\n`gradlew assembleBasicDebug` might be a good start.\nAlternatively you can use \"make\" in Android Studio (\"Build\" =\u003e \"Make Project\").\n\nTo be able to create an installable Android package (APK), you need to create a signing key first.\nIn Android Studio go to \"Build\" =\u003e \"Generate Signed Bundle \u0026 APK\", select \"APK\", and follow the instructions.\nYou will create a key storage and a project-specific key.\nEnter path and access information to those in file `cgeo/private.properties`.\n\n### Testing\n\nThe Test classes can be found in the project test.\nTest classes should be located in the same package as the class under test.\nEvery class can be run with `Run '\u003cclass name\u003e'` or debugged with `Debug '\u003cclass name\u003e'`) as an [Android JUnit Test](https://developer.android.com/training/testing/fundamentals.html).\nTo run all tests use the same `Run 'Tests in \u003cpackage name\u003e'` menu item from the context menu of a package in the test project.\n\nFor tests to run successfully you need to configure c:geo on the emulator that runs the test with a valid geocaching.com account.\nIn order for all tests to be successful the account needs to be a premium member.\n\nTests may also be launched from the command line.\nUse `gradlew assembleBasicDebug` from the root directory of the git repository.\n\n## Deploying the app locally for testing purposes\n\nAndroid Studio needs to be configured for which device(s) c:geo will be deployed to. Use \"run\" =\u003e \"run\" (2nd entry with this heading).\nYou can create several profiles for a physical device attached via USB, as well as virtual devices that are run in an emulator.\n(If the emulator is not installed yet, do so via File =\u003e Settings, Appearance \u0026 Behaviour =\u003e System Settings =\u003e Android SDK, tab \"SDK Tools\", check \"Android Emulator\", and apply.)\n\n## License\n\nc:geo is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).\n\nThis product includes software developed by the c:geo team and contributors as well as parts developed elsewhere.\nSee the references in main/src/main/res/values/strings_not_translatable.xml for details (or \"about: contributors\" page in the app).\n\n## Contact\n\n- Website: https://www.cgeo.org/\n- Support: support@cgeo.org\n- Facebook: https://www.facebook.com/android.geocaching\n- Google Play: https://play.google.com/store/apps/details?id=cgeo.geocaching\n- Live status: https://status.cgeo.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgeo%2Fcgeo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcgeo%2Fcgeo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcgeo%2Fcgeo/lists"}