{"id":15294678,"url":"https://github.com/caseykulm/retroravelry","last_synced_at":"2026-03-15T16:56:38.919Z","repository":{"id":57718115,"uuid":"106941886","full_name":"caseykulm/retroravelry","owner":"caseykulm","description":"Retrofit wrapper for the Ravelry API written in Kotlin","archived":false,"fork":false,"pushed_at":"2020-10-17T21:50:25.000Z","size":3623,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-07T05:12:11.839Z","etag":null,"topics":["android","coroutines","hacktoberfest","java","kotlin","ravelry-api","retrofit2"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caseykulm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-14T16:06:12.000Z","updated_at":"2024-04-10T04:19:39.000Z","dependencies_parsed_at":"2022-08-24T03:20:06.099Z","dependency_job_id":null,"html_url":"https://github.com/caseykulm/retroravelry","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/caseykulm/retroravelry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caseykulm%2Fretroravelry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caseykulm%2Fretroravelry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caseykulm%2Fretroravelry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caseykulm%2Fretroravelry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caseykulm","download_url":"https://codeload.github.com/caseykulm/retroravelry/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caseykulm%2Fretroravelry/sbom","scorecard":{"id":267199,"data":{"date":"2025-08-11","repo":{"name":"github.com/caseykulm/retroravelry","commit":"177f20c4a84bd0a6f7a4da2ac7b942fd01699e06"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"Code-Review","score":0,"reason":"Found 0/18 approved changesets -- score normalized to 0","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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"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":"Binary-Artifacts","score":1,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: lib/kotlin-reflect.jar:1","Warn: binary detected: lib/kotlin-stdlib-jre7-sources.jar:1","Warn: binary detected: lib/kotlin-stdlib-jre7.jar:1","Warn: binary detected: lib/kotlin-stdlib-jre8-sources.jar:1","Warn: binary detected: lib/kotlin-stdlib-jre8.jar:1","Warn: binary detected: lib/kotlin-stdlib-sources.jar:1","Warn: binary detected: lib/kotlin-stdlib.jar:1","Warn: binary detected: lib/kotlin-test.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":"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":"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":"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":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 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-17T12:23:44.949Z","repository_id":57718115,"created_at":"2025-08-17T12:23:44.949Z","updated_at":"2025-08-17T12:23:44.949Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30547423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T15:03:43.933Z","status":"ssl_error","status_checked_at":"2026-03-15T15:03:37.630Z","response_time":61,"last_error":"SSL_read: 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"}},"keywords":["android","coroutines","hacktoberfest","java","kotlin","ravelry-api","retrofit2"],"created_at":"2024-09-30T17:05:54.809Z","updated_at":"2026-03-15T16:56:38.900Z","avatar_url":"https://github.com/caseykulm.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Retro-Ravelry\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.caseykulm.retroravelry/retroravelry.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.caseykulm.retroravelry%22%20AND%20a:%22retroravelry%22)\n\nKotlin wrapper for the [Ravelry API][1] using [Retrofit][2] and [Kotlin Coroutines][3].\n\n## Download \n\nWith Gradle:\n\n```kotlin\ndependencies {\n    implementation(\"com.caseykulm.retroravelry:retroravelry:0.11.0\")\n}\n```\n\n## License\n\n    Copyright 2016 Casey Kulm\n    \n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n[1]: http://www.ravelry.com/groups/ravelry-api\n[2]: https://github.com/square/retrofit\n[3]: https://kotlinlang.org/docs/reference/coroutines-overview.html\n\n## Setup\n\n1. Get the `secrets.properties` file from 1Password.\n2. Add it to the root of the project\n\n## Checks\n\n### Quick start\n\nRun the following to mimic what CI is running:\n\n`./.circleci/checks.sh`\n\nNote: Make sure you mark this file executable with `chmod +x ./.circleci/checks.sh`\n\n### More info\n\nWe are running our CI on Circle CI with the following checks:\n\n* ktlint\n* unit tests\n* build a JAR successfully\n\n### ktlint\n\nKtlint may report errors. If it does you can run:\n\n`./gradlew ktlintFormat`\n\nto attempt to fix it. It can fix most things, but sometimes it will tell you that \nyou need to resolve something by hand.\n\n## Browsing API\n\nThere is a [ravelry_postman_collection.json](./ravelry_postman_collection.json) file available \nat the root of this repo that can be imported into the [Postman](https://www.postman.com/) \napplication to browse the REST API via a collection. This in turn can be used to generate an \nOAuth2 access token which you can use in this project to test your changes. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaseykulm%2Fretroravelry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaseykulm%2Fretroravelry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaseykulm%2Fretroravelry/lists"}