{"id":20455000,"url":"https://github.com/jumpingrivers/intergrate","last_synced_at":"2026-01-22T13:42:45.240Z","repository":{"id":36328219,"uuid":"214144670","full_name":"jumpingrivers/inteRgrate","owner":"jumpingrivers","description":"Continuous integration","archived":false,"fork":false,"pushed_at":"2024-06-21T09:15:30.000Z","size":326,"stargazers_count":20,"open_issues_count":5,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-13T21:40:23.931Z","etag":null,"topics":["ci","gitlab-ci","rstats","travis-ci"],"latest_commit_sha":null,"homepage":"https://jumpingrivers.github.io/inteRgrate/","language":"R","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/jumpingrivers.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-10-10T09:43:02.000Z","updated_at":"2025-01-20T17:20:29.000Z","dependencies_parsed_at":"2024-11-22T15:33:52.744Z","dependency_job_id":null,"html_url":"https://github.com/jumpingrivers/inteRgrate","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/jumpingrivers/inteRgrate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2FinteRgrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2FinteRgrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2FinteRgrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2FinteRgrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jumpingrivers","download_url":"https://codeload.github.com/jumpingrivers/inteRgrate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2FinteRgrate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28663859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["ci","gitlab-ci","rstats","travis-ci"],"created_at":"2024-11-15T11:17:41.564Z","updated_at":"2026-01-22T13:42:45.222Z","avatar_url":"https://github.com/jumpingrivers.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"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)\n```\n\n# inteRgrate: Very opinated package development\n\n\u003c!-- badges: start --\u003e\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)\n[![CRAN](http://www.r-pkg.org/badges/version/inteRgrate)](https://cran.r-project.org/package=inteRgrate)\n\u003c!-- [![codecov.io](https://codecov.io/github/csgillespie/poweRlaw/coverage.svg?branch=master)](https://codecov.io/github/csgillespie/poweRlaw?branch=master) --\u003e\n\u003c!-- [![Downloads](http://cranlogs.r-pkg.org/badges/poweRlaw?color=brightgreen)](https://cran.r-project.org/package=poweRlaw) --\u003e\n\n[![Codecov test coverage](https://codecov.io/gh/jumpingrivers/inteRgrate/branch/master/graph/badge.svg)](https://codecov.io/gh/jumpingrivers/inteRgrate?branch=master)\n[![R-CMD-check](https://github.com/jumpingrivers/inteRgrate/workflows/R-CMD-check/badge.svg)](https://github.com/jumpingrivers/inteRgrate/actions)\n\u003c!-- badges: end --\u003e\n\nThe goal of inteRgrate is to provide an very opinionated set of rules for R package development.\nThe idea is that when many people contribute to a package, it's easy for standards to diverge. We\nthink that CI can help here. \nThis package has the same functions for both travis and Gitlab-CI environments.\nCurrently, the package is used by [Jumping Rivers](https://www.jumpingrivers.com) on GitHub and \nGitLab.\n\nThe rationale behind this package is\n\n * While checking R packages on travis is easy, support for GitLab (and others) is lacking.\n * When developing a package, sometimes we want to specify the exact number of NOTES\n and WARNINGS we expect/allow.\n * Having a consistent system for different CI is desirable.\n * For our CI steps, we have a few other checks that we tend to implement, e.g. lints, not\n using imports within namespaces.\n \nThis package is still being developed, but we are now actively using it, so hopefully we can\navoid breaking changes.\n\n## Installation\n\nAs the package is currently being developed, it isn't yet on CRAN. \nThe development version can be installed from [GitHub](https://github.com/) with:\n\n```{r, eval = FALSE}\ninstall.packages(\"remotes\")\nremotes::install_github(\"jumpingrivers/inteRgrate\")\n```\n\n## Functions\n\nThe package is meant to be used within a continuous integration framework, e.g. travis, GitLab \nrunner. This package contains a number functions that are useful for CI:\n\n * `check_pkg()` - installs package dependencies, builds \u0026 installs the package, before \n  running package check. By default, __any__ notes or warnings will raise an error message.\n  This can be changed by setting the environment variables `ALLOWED_NOTES` and \n  `ALLOWED_WARNINGS`.\n * `check_lintr()` - runs lintr on the package, README.Rmd and vignettes. \n * `check_namespace()` - check for instances of `import()` in the NAMESPACE file. By default, \n no imports are allowed. This can be changed via the environment variable `NO_IMPORTS`\n * `check_r_filenames()` - ensures file extensions are `.R` and all names are lower case.\n * `check_version()` - ensures that the package description has been updated.\n * `check_gitignore()` - .gitignore contains standard files.\n * `check_readme()` - checks README.Rmd timestamps\n * `check_tidy_description()` - ensure that the DESCRIPTION file is tidy, \n via `usethis::use_tidy_description()`\n * `check_file_permissions()`, `check_line_breaks()` -  ensures that linux line breaks are used and file permissions are\n sensible.\n * `create_tag()` - autotag via the CI.\n\nSee the help pages for customisation.\n\nThere's also a pre-commit hook to help. Run `inteRgrate::add_pre_commit()` in root git directory\nof your repo and checks will be run before committing.\n\n### Example .travis.yml file\n\nWithin a CI file, it's often better to use `check_via_env()` that will automatically call all checks.\nSpecific checks can be switch on/off via environment variables.\n\n```\nlanguage: r\ncache: packages\nenv:\n  global:\n    - ALLOWED_WARNINGS=0\n    - ALLOWED_NOTES=0\n    - NO_IMPORTS=0\n\nscript:\n  - Rscript -e \"inteRgrate::check_via_env(default = 'true')\"\n```\n\n### Example .gitlab.yml file\n\n```\nimage: rocker/r-ubuntu:18.04\nvariables:\n  ALLOWED_WARNINGS: 0\n  ALLOWED_NOTES: 0\n  NO_IMPORTS: 0\n\nbefore_script:\n  - Rscript -e \"install.packages('remotes')\"\n  - Rscript -e \"remotes::install_github('jumpingrivers/inteRgrate')\"\n\ncheck:\n  script:\n    - Rscript -e \"inteRgrate::check_via_env(default = 'true')\"\n```\n\n### Command line\n\nYou can also use it at the command line\n\n```{r, eval = FALSE}\nlibrary(\"inteRgrate\")\ncheck_pkg()\ncheck_r_filenames()\n```\n\nOther information\n-----------------\n\n  * ROpensci are developing a related package - [tic](https://github.com/ropenscilabs/tic).\n  The [tic](https://github.com/ropenscilabs/tic) package aims to specify the CI environment purely by an R script.\n  \n  * If you have any suggestions or find bugs, please use the github [issue tracker](https://github.com/jumpingrivers/inteRgrate/issues)\n\n  * Feel free to submit pull requests\n\n---\n\nDevelopment of this package was supported by [Jumping Rivers](https://www.jumpingrivers.com)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpingrivers%2Fintergrate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjumpingrivers%2Fintergrate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpingrivers%2Fintergrate/lists"}