Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sckott/cchecksapi
CRAN checks API (DEFUNCT)
https://github.com/sckott/cchecksapi
cran cran-checks docker r rstats sinatra
Last synced: 3 months ago
JSON representation
CRAN checks API (DEFUNCT)
- Host: GitHub
- URL: https://github.com/sckott/cchecksapi
- Owner: sckott
- License: mit
- Archived: true
- Created: 2017-09-16T15:59:09.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-12T19:53:49.000Z (almost 2 years ago)
- Last Synced: 2024-06-12T15:17:44.199Z (5 months ago)
- Topics: cran, cran-checks, docker, r, rstats, sinatra
- Language: Ruby
- Homepage: https://github.com/r-hub/cchecksbadges
- Size: 175 KB
- Stars: 33
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README-old.md
- Changelog: history.rb
- License: LICENSE.md
Awesome Lists containing this project
- jimsghstars - sckott/cchecksapi - CRAN checks API (DEFUNCT) (Ruby)
README
CRAN Check Results API
======================Base URL:
API Docs:
Check out [cchecks][] for an R package interface to this API
tech:
* language: Ruby
* rest framework: Sinatra
* scraping http requests: faraday
* databases: mongodb, mariadb
* container: all wrapped up in docker (docker-compose)
* uses GΓ‘bor's API to get names of CRAN packages
* for the history routes, we keep the last 30 days of checks for each package; each day we purge any checks data older than 30 days
* A cron job:
* scrapes pkg specific data __every 3rd hour__
* scrapes maintainer level data __every 4th hour__
* poplulates the history routes once a day## JSON API routes
- `/docs`
- `/heartbeat`
- `/pkgs`
- `/pkgs/:pkg_name:`
- `/pkgs/:pkg_name:/history`
- `/history/:date:`
- `/maintainers`
- `/maintainers/:email:`
- `/badges/:type/:package:`
- `/badges/flavor/:flavor/:package:`## JSON API examples
To replicate the examples below as is, you'll need curl (which you likely have), and jq () which you may not have. You can also just copy/paste the URLs into your browser π
All pkgs from a maintainer that have any checks not passing
```sh
curl https://cranchecks.info/maintainers/csardi.gabor_at_gmail.com | jq '.data.table[] | select(.any) | .package'
```Similar but across all packages
```sh
curl https://cranchecks.info/pkgs?limit=10 | jq '.data[] | select(.summary.any) | .package'
```Packages that have error status checks
```sh
curl https://cranchecks.info/pkgs?limit=1000 | jq '.data[] | select(.summary.error > 0) | .package'
```### workflow for checking your own packages
Check if you have any packages have one or more of a current status across operating systems and R versions, e.g., errors
```sh
curl https://cranchecks.info/maintainers/csardi.gabor_at_gmail.com | jq '.data.table[] | select(.error > 0)'
``````sh
{
"package": "rcmdcheck",
"any": true,
"ok": 9,
"note": 0,
"warn": 0,
"error": 3
}
{
"package": "secret",
"any": true,
"ok": 11,
"note": 0,
"warn": 0,
"error": 1
}
```Then grab the check details for a specific package
```sh
curl https://cranchecks.info/pkgs/secret | jq .data.check_details
``````sh
{
"version": "1.0.0",
"check": "examples",
"result": "ERROR",
"output": "Running examples in 'secret-Ex.R' ... cutoff",
"flavors": [
"r-devel-windows-ix86+x86_64"
],
"additional_issues": []
}
```Optionally see the check details for previous CRAN checks in the `/history` route (up to 30 days prior to the current date)
```sh
curl https://cranchecks.info/pkgs/secret/history | jq '.data.history[].check_details'
``````sh
{
"version": "1.0.0",
"check": "examples",
"result": "ERROR",
"output": "Running examples in 'secret-Ex.R' ... cutoff",
"flavors": [
"r-devel-windows-ix86+x86_64"
],
"additional_issues": []
}
{
"version": "1.0.0",
"check": "examples",
"result": "ERROR",
"output": "Running examples in 'secret-Ex.R' ... cutoff",
"flavors": [
"r-devel-windows-ix86+x86_64"
],
"additional_issues": []
}
... cutoff
```## Badges
> also check out badges from R-hub for CRAN versions, CRAN release dates, and CRAN downloads
markdown egs to use in your README
linking to cran checks page (likely want to use `cran.r-project.org` url since cran check will complain about a different mirror's base url)
[![cran checks](https://cranchecks.info/badges/summary/reshape)](https://cran.r-project.org/web/checks/check_results_reshape.html) -> `[![cran checks](https://cranchecks.info/badges/summary/reshape)](https://cran.r-project.org/web/checks/check_results_reshape.html)`
Or maybe link to JSON response for this API
[![cran checks](https://cranchecks.info/badges/summary/reshape)](https://cranchecks.info/pkgs/reshape) -> `[![cran checks](https://cranchecks.info/badges/summary/reshape)](https://cranchecks.info/pkgs/reshape)`
pkgs using the badges:
- [rgbif](https://github.com/ropensci/rgbif#rgbif)
- [wellknown](https://github.com/ropensci/wellknown#wellknown)
- [taxize](https://github.com/ropensci/taxize#taxize)### package status summaries
- `/badges/summary/:package` all okay?, no notes, warnings, or errors
- if any notes, warnings, or errors = `Not OK` (color:red)
- if NO notes, warnings, or errors = `OK` (color:green)
- `/badges/worst/:package` worst result:
- if any errors = `ERROR` (color:red)
- if any warnings, and no errors = `WARN` (color:yellow)
- if any notes, and no errors or warnings = `NOTE` (color:blue)
- if no errors, warnings, or notes = `OK` (color:green)__NOT SUPPORTED YET__
- `/badges/noerrors/:package` no errors? but could have warnings or notes
- `/badges/nowarns/:package` no warns? no errors, no warnings, but could have notes
- `/badges/nonotes/:package` no notes? no errors, no warnings, and no notes### per flavor
- `/badges/flavor/:flavor/:package` flavor + package, where flavors are any one of:
operating systems
- linux
- windows
- osx
- solarisR versions
- devel
- oldrel
- patched
- releaseWith meanings:
- if any notes, warnings, or errors = `Not OK` (color:red)
- if NO notes, warnings, or errors = `OK` (color:green)### Query parameters
- `ignore`: if `true`, ignore any `NOTE`'s and get a green `OK` badge. supported by `/badges/summary` and `/badges/flavor`
### examples
both badges routes
![](svgs/unknown.svg)
package summary route
![](svgs/ok.svg)
![](svgs/notok.svg)flavor route
![](svgs/note.svg)
![](svgs/warn.svg)
![](svgs/error.svg)[cchecks]: https://github.com/ropensci/cchecks