library(metacheck)
#>
#>
#> ***********************************************
#> ✅ Welcome to metacheck beta version 0.0.1.0
#> ✨ Your version is up to date.
#>
#> ℹ For support and examples visit:
#> https://scienceverse.github.io/metacheck/
#>
#> ⚠️ Set an email to use APIs like OpenAlex
#> metacheck::email('your@address.org')
#>
#> 🧪 This is beta software; please check any
#> results. Check module validation info for
#> false positive and negative rates.
#> ***********************************************
#>
#> Attaching package: 'metacheck'
#> The following object is masked from 'package:base':
#>
#> messageThere are some built-in functions in metacheck for exploring GitHub repositories. You can use these in custom modules.
github_repo
The github functions all work with the following formats for referring to repositories:
-
"{username}/{repo}"
-
"{username}/{repo}.git"
-
"https://github.com/{username}/{repo}.git"
"https://github.com/{username}/{repo}/{...}"
The github_repo() function returns the simplified format
of. repo name, and NULL if the repository in inaccessible.
github_repo("https://github.com/scienceverse/metacheck.git")
#> [1] "scienceverse/metacheck"
github_repo("scienceverse/checkpaper")
#> NULLgithub_readme
Get the text of the readme file, regardless of the exact file name (e.g., README vs README.md).
readme <- github_readme("scienceverse/metacheck")
cat(readme)#> # metacheck
#>
#> <!-- badges: start -->
#> 
#>
#> [](https://lifecycle.r-lib.org/articles/stages.html#experimental)
#>
#> [](https://app.codecov.io/gh/scienceverse/metacheck)
#> <!-- badges: end -->
#>
#> The goal of metacheck is to automatically check research outputs for best practices. You can find out more at <https://scienceverse.github.io/metacheck/>.
#>
#> ## Installation
#>
#> You can install the development version of metacheck from [GitHub](https://github.com/) with:
#>
#> ``` r
#> # install.packages("remotes")
#> remotes::install_github("scienceverse/metacheck")
#> ```
#>
#>
#>
#> ## Notes for Developers
#>
#> You may not contribute any code unless you also contribute a test of this code.
#>
#> Check tests/testthat/helper.R for custom test skip functions. All tests requiring a web connection, LLM, or long tests should be skipped or mocked. You can control this globally with the skip functions in this file (e.g., comment out the first `skip()` function in each custom function to run all tests of this type unless on cran/covr).
github_languages
You can retrieve the number of bytes dedicated to various coding languages, as detected and classified by GitHub.
github_languages("scienceverse/metacheck")
#> repo language bytes
#> 1 scienceverse/metacheck R 53601558
#> 2 scienceverse/metacheck HTML 19383876
#> 3 scienceverse/metacheck Lua 92710
#> 4 scienceverse/metacheck TeX 40040
#> 5 scienceverse/metacheck Stata 12810
#> 6 scienceverse/metacheck AMPL 7571
#> 7 scienceverse/metacheck Python 6986
#> 8 scienceverse/metacheck CSS 5358
#> 9 scienceverse/metacheck Typst 5329
#> 10 scienceverse/metacheck Makefile 1407
#> 11 scienceverse/metacheck Dockerfile 1201
#> 12 scienceverse/metacheck JavaScript 1116
#> 13 scienceverse/metacheck SCSS 639
#> 14 scienceverse/metacheck Shell 17github_files
You can get a list of file names, their path, size, file extension, and a guess at their type.
By default, you just retrieve the files and directories in the base directory, non-recursively.
github_files("scienceverse/metacheck")
#> repo clean_repo name
#> 1 scienceverse/metacheck scienceverse/metacheck _metacheck.Rproj
#> 2 scienceverse/metacheck scienceverse/metacheck _stuff
#> 3 scienceverse/metacheck scienceverse/metacheck .github
#> 4 scienceverse/metacheck scienceverse/metacheck .gitignore
#> 5 scienceverse/metacheck scienceverse/metacheck .Rbuildignore
#> 6 scienceverse/metacheck scienceverse/metacheck AUTHORS.md
#> 7 scienceverse/metacheck scienceverse/metacheck CODE_OF_CONDUCT.md
#> 8 scienceverse/metacheck scienceverse/metacheck codecov.yml
#> 9 scienceverse/metacheck scienceverse/metacheck CONTRIBUTING.md
#> 10 scienceverse/metacheck scienceverse/metacheck CONTRIBUTORS.md
#> 11 scienceverse/metacheck scienceverse/metacheck data
#> 12 scienceverse/metacheck scienceverse/metacheck data-raw
#> 13 scienceverse/metacheck scienceverse/metacheck DESCRIPTION
#> 14 scienceverse/metacheck scienceverse/metacheck docs
#> 15 scienceverse/metacheck scienceverse/metacheck inst
#> 16 scienceverse/metacheck scienceverse/metacheck LICENSE.md
#> 17 scienceverse/metacheck scienceverse/metacheck makefile
#> 18 scienceverse/metacheck scienceverse/metacheck man
#> 19 scienceverse/metacheck scienceverse/metacheck NAMESPACE
#> 20 scienceverse/metacheck scienceverse/metacheck NEWS.md
#> 21 scienceverse/metacheck scienceverse/metacheck pkgdown
#> 22 scienceverse/metacheck scienceverse/metacheck R
#> 23 scienceverse/metacheck scienceverse/metacheck README.md
#> 24 scienceverse/metacheck scienceverse/metacheck tests
#> 25 scienceverse/metacheck scienceverse/metacheck vignettes
#> path
#> 1 _metacheck.Rproj
#> 2 _stuff
#> 3 .github
#> 4 .gitignore
#> 5 .Rbuildignore
#> 6 AUTHORS.md
#> 7 CODE_OF_CONDUCT.md
#> 8 codecov.yml
#> 9 CONTRIBUTING.md
#> 10 CONTRIBUTORS.md
#> 11 data
#> 12 data-raw
#> 13 DESCRIPTION
#> 14 docs
#> 15 inst
#> 16 LICENSE.md
#> 17 makefile
#> 18 man
#> 19 NAMESPACE
#> 20 NEWS.md
#> 21 pkgdown
#> 22 R
#> 23 README.md
#> 24 tests
#> 25 vignettes
#> download_url
#> 1 https://raw.githubusercontent.com/scienceverse/metacheck/main/_metacheck.Rproj
#> 2 <NA>
#> 3 <NA>
#> 4 https://raw.githubusercontent.com/scienceverse/metacheck/main/.gitignore
#> 5 https://raw.githubusercontent.com/scienceverse/metacheck/main/.Rbuildignore
#> 6 https://raw.githubusercontent.com/scienceverse/metacheck/main/AUTHORS.md
#> 7 https://raw.githubusercontent.com/scienceverse/metacheck/main/CODE_OF_CONDUCT.md
#> 8 https://raw.githubusercontent.com/scienceverse/metacheck/main/codecov.yml
#> 9 https://raw.githubusercontent.com/scienceverse/metacheck/main/CONTRIBUTING.md
#> 10 https://raw.githubusercontent.com/scienceverse/metacheck/main/CONTRIBUTORS.md
#> 11 <NA>
#> 12 <NA>
#> 13 https://raw.githubusercontent.com/scienceverse/metacheck/main/DESCRIPTION
#> 14 <NA>
#> 15 <NA>
#> 16 https://raw.githubusercontent.com/scienceverse/metacheck/main/LICENSE.md
#> 17 https://raw.githubusercontent.com/scienceverse/metacheck/main/makefile
#> 18 <NA>
#> 19 https://raw.githubusercontent.com/scienceverse/metacheck/main/NAMESPACE
#> 20 https://raw.githubusercontent.com/scienceverse/metacheck/main/NEWS.md
#> 21 <NA>
#> 22 <NA>
#> 23 https://raw.githubusercontent.com/scienceverse/metacheck/main/README.md
#> 24 <NA>
#> 25 <NA>
#> size ext type
#> 1 462 rproj config
#> 2 0 dir
#> 3 0 github dir
#> 4 385 gitignore config
#> 5 367 rbuildignore file
#> 6 177 md text
#> 7 5240 md text
#> 8 134 yml config
#> 9 4850 md text
#> 10 133 md text
#> 11 0 dir
#> 12 0 dir
#> 13 2118 file
#> 14 0 dir
#> 15 0 dir
#> 16 34303 md text
#> 17 1407 file
#> 18 0 dir
#> 19 3277 file
#> 20 23166 md text
#> 21 0 dir
#> 22 0 dir
#> 23 1267 md text
#> 24 0 dir
#> 25 0 dir
github_files("scienceverse/metacheck", dir = ".github")
#> repo clean_repo name
#> 1 scienceverse/metacheck scienceverse/metacheck .gitignore
#> 2 scienceverse/metacheck scienceverse/metacheck CODEOWNERS
#> 3 scienceverse/metacheck scienceverse/metacheck ISSUE_TEMPLATE
#> 4 scienceverse/metacheck scienceverse/metacheck workflows
#> path
#> 1 .github/.gitignore
#> 2 .github/CODEOWNERS
#> 3 .github/ISSUE_TEMPLATE
#> 4 .github/workflows
#> download_url
#> 1 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/.gitignore
#> 2 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/CODEOWNERS
#> 3 <NA>
#> 4 <NA>
#> size ext type
#> 1 7 gitignore config
#> 2 12 file
#> 3 0 dir
#> 4 0 dirYou can also retrieve files recursively. Searching a large repository recursively can take a while.
github_files("scienceverse/metacheck",
dir = ".github",
recursive = TRUE)
#> repo clean_repo name
#> 1 scienceverse/metacheck scienceverse/metacheck .gitignore
#> 2 scienceverse/metacheck scienceverse/metacheck CODEOWNERS
#> 3 scienceverse/metacheck scienceverse/metacheck ISSUE_TEMPLATE
#> 4 scienceverse/metacheck scienceverse/metacheck workflows
#> 5 scienceverse/metacheck scienceverse/metacheck bug_report.md
#> 6 scienceverse/metacheck scienceverse/metacheck config.yml
#> 7 scienceverse/metacheck scienceverse/metacheck feature_request.md
#> 8 scienceverse/metacheck scienceverse/metacheck wrong_check_result.md
#> 9 scienceverse/metacheck scienceverse/metacheck pkgdown.yaml
#> 10 scienceverse/metacheck scienceverse/metacheck teams-notify.yml
#> 11 scienceverse/metacheck scienceverse/metacheck test-coverage.yaml
#> 12 scienceverse/metacheck scienceverse/metacheck upload_packages.yml
#> path
#> 1 .github/.gitignore
#> 2 .github/CODEOWNERS
#> 3 .github/ISSUE_TEMPLATE
#> 4 .github/workflows
#> 5 .github/ISSUE_TEMPLATE/bug_report.md
#> 6 .github/ISSUE_TEMPLATE/config.yml
#> 7 .github/ISSUE_TEMPLATE/feature_request.md
#> 8 .github/ISSUE_TEMPLATE/wrong_check_result.md
#> 9 .github/workflows/pkgdown.yaml
#> 10 .github/workflows/teams-notify.yml
#> 11 .github/workflows/test-coverage.yaml
#> 12 .github/workflows/upload_packages.yml
#> download_url
#> 1 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/.gitignore
#> 2 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/CODEOWNERS
#> 3 <NA>
#> 4 <NA>
#> 5 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/ISSUE_TEMPLATE/bug_report.md
#> 6 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/ISSUE_TEMPLATE/config.yml
#> 7 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/ISSUE_TEMPLATE/feature_request.md
#> 8 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/ISSUE_TEMPLATE/wrong_check_result.md
#> 9 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/workflows/pkgdown.yaml
#> 10 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/workflows/teams-notify.yml
#> 11 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/workflows/test-coverage.yaml
#> 12 https://raw.githubusercontent.com/scienceverse/metacheck/main/.github/workflows/upload_packages.yml
#> size ext type
#> 1 7 gitignore config
#> 2 12 file
#> 3 0 dir
#> 4 0 dir
#> 5 469 md text
#> 6 46 yml config
#> 7 417 md text
#> 8 732 md text
#> 9 1380 yaml config
#> 10 521 yml config
#> 11 1874 yaml config
#> 12 3362 yml configgithub_info
Get all of the information about a repository in one list object, with items named “repo”, “readme”, “languages”, and “files”.
github_info("scienceverse/demo")
#> $repo
#> [1] "scienceverse/demo"
#>
#> $readme
#> [1] "# demo\nFor use in testing functions\n"
#>
#> $files
#> repo clean_repo name path
#> 1 scienceverse/demo scienceverse/demo code code
#> 2 scienceverse/demo scienceverse/demo folder folder
#> 3 scienceverse/demo scienceverse/demo good-example.R good-example.R
#> 4 scienceverse/demo scienceverse/demo README.md README.md
#> download_url size
#> 1 <NA> 0
#> 2 <NA> 0
#> 3 https://raw.githubusercontent.com/scienceverse/demo/main/good-example.R 227
#> 4 https://raw.githubusercontent.com/scienceverse/demo/main/README.md 36
#> ext type
#> 1 dir
#> 2 dir
#> 3 r code
#> 4 md text
#>
#> $languages
#> repo language bytes
#> 1 scienceverse/demo R 1052