{"id":20455007,"url":"https://github.com/jumpingrivers/audit.connect","last_synced_at":"2026-05-10T17:35:44.854Z","repository":{"id":173595381,"uuid":"644088624","full_name":"jumpingrivers/audit.connect","owner":"jumpingrivers","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-12T16:28:05.000Z","size":204,"stargazers_count":0,"open_issues_count":7,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-12T17:34:09.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jumpingrivers.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":"audit.connect.Rproj","citation":null,"codeowners":"CODEOWNERS","security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-22T19:42:28.000Z","updated_at":"2025-02-12T16:28:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"68217afc-7a15-47e5-ae24-27d4cdf24bc3","html_url":"https://github.com/jumpingrivers/audit.connect","commit_stats":null,"previous_names":["jumpingrivers/audit.connect"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2Faudit.connect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2Faudit.connect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2Faudit.connect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jumpingrivers%2Faudit.connect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jumpingrivers","download_url":"https://codeload.github.com/jumpingrivers/audit.connect/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242005820,"owners_count":20056434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-15T11:17:41.828Z","updated_at":"2026-05-10T17:35:44.827Z","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# audit.connect\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/jumpingrivers/audit.connect/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/jumpingrivers/audit.connect/actions/workflows/R-CMD-check.yaml)\n\u003c!-- badges: end --\u003e\n\nThis checks that a variety of applications can be deployed to a Posit Connect Server.\n\n## Installation\n\nTo install the R package, run\n\n```{r, eval = FALSE}\ninstall.packages(\"audit.connect\")\n```\nFor python based deployment, the python package, `rsconnect-python` is required\n\n```{bash, eval = FALSE}\npip install rsconnect-python\n```\n\n## Usage\n\nRunning the test is straightforward\n\n```{r, eval = FALSE}\nlibrary(\"audit.connect\")\ncheck(server = \"https://www.connect.server.name/\",\n      token = \"API_TOKEN\")\n```\nAlternatively, you can set environmental variables, `CONNECT_SERVER` and `CONNECT_API_KEY` in your\n`.Renviron` file.\n\n## Connect Package Pollution\n\nIf you are running this package on a machine you normally use to deploy to Connect, then\nthis isn't an issue - you can skip the next part.\n\n**If** you are using a machine where you are deploying to Connect for the\nfirst time, then read one!\n\nConnect package pollution occurs when\n\n * we use package manager binaries, **and**\n * the OS on Connect differs to the OS on the deployment machine.\n\nIf you aren't using binaries or the OS is the same, then you won't have any issue.\nIf you want to be sure, we can use {renv}\n\n```{r, eval = FALSE}\n# Ensure we don't use the existing renv cache\nfs::dir_delete(renv::paths$cache())\n# Use the slow installation method\nrenv::init(repo = \"https://cloud.r-project.org/\")\nrenv::install(\"remotes\")\n```\n\n\n## Config file\n\nExperimental. You can skip deployment tests, by setting the appropriate value in `config-uat.yml`.\nThis file can be auto-generated via\n\n```{r, eval = FALSE}\ncreate_config()\n```\nIf a test is missing in the config, the default value is TRUE.\n\n## Creating a test\n\nTests are R6 classes. To be automatically detected, the class name **must**\nstart with `check_`. If you copy/paste the following code into `R/example.R`,\nwhen you run `check()`, the test is automatically detected and run.\nLikewise, `create_config()`\n\n``` r\n#' @export\ncheck_example = R6::R6Class(\n  \"check_example\",\n  inherit = uatBase::base_check,\n  # A function is passed to checker()\n  # This runs the test, detects errors, and logs the result\n  public = list(\n    #' @description Runs a UAT check\n    check = function(debug_level) {\n      private$checker(example_test(), debug_level)\n      return(invisible(NULL))\n    }\n  ),\n  # Multiple classes can have the same group.\n  # But context/short should be unique\n  private = list(\n    context = \"Human description\",\n    short = \"config_variable\",\n    group = \"config_group\"\n  )\n)\n\nexample_test = function() {\n  return(TRUE)\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpingrivers%2Faudit.connect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjumpingrivers%2Faudit.connect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjumpingrivers%2Faudit.connect/lists"}