openpharma / staged.dependencies

R package to implement development stages for package development
https://openpharma.github.io/staged.dependencies/
MIT License
12 stars 3 forks source link

Handle inaccessible repos more gracefully #168

Open asbates opened 1 year ago

asbates commented 1 year ago

For private repositories like chevron, it would be nice if depencency_table didn't throw warnings if the user doesn't have access. This is confusing for external collaborators, especially if someone doesn't even know chevron exists. I don't have an explicit suggestion unfortunately but it is off putting and suggests something is wrong even when it is not.

# from within teal.code directory on main
library(staged.dependencies)

x <- dependency_table(project = ".")
#> Copying local dir C:/Users/andre/OneDrive/Desktop/gh/teal-proj/teal.code to cache dir C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/local_insightsengineering_teal.code_f5c7ee90093dd244b11b1acde2d5098a
#> clone https://github.com/insightsengineering/teal.widgets.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.widgets_8f92a3d7b00ae5fadadf0ffc4492c7f2
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.widgets_8f92a3d7b00ae5fadadf0ffc4492c7f2
#> clone https://github.com/insightsengineering/teal.transform.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.transform_7dbb21e492260b8f5bd20354278faa2c
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.transform_7dbb21e492260b8f5bd20354278faa2c
#> clone https://github.com/insightsengineering/teal.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal_e38093f352c184cf676b1dd47551848c
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal_e38093f352c184cf676b1dd47551848c
#> clone https://github.com/insightsengineering/teal.modules.general.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.general_6683cd12f2051b8649bc34a3a5b86bd1
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.general_6683cd12f2051b8649bc34a3a5b86bd1
#> clone https://github.com/insightsengineering/teal.modules.clinical.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.clinical_7480b81982f393c223354b432013836e
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.clinical_7480b81982f393c223354b432013836e
#> clone https://github.com/insightsengineering/teal.goshawk.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.goshawk_23d2065f4fbd2bc73b043ff69b62027b
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.goshawk_23d2065f4fbd2bc73b043ff69b62027b
#> clone https://github.com/insightsengineering/teal.osprey.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.osprey_9d88421efa7fd7b6fcece04c431bbe47
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.osprey_9d88421efa7fd7b6fcece04c431bbe47
#> clone https://github.com/Roche/rtables.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/Roche_rtables_c238dcb86e490be08567fc05c8d832f5
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/Roche_rtables_c238dcb86e490be08567fc05c8d832f5
#> clone https://github.com/insightsengineering/teal.slice.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.slice_69fabf5d920c35ab0e950fac1a49b372
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.slice_69fabf5d920c35ab0e950fac1a49b372
#> clone https://github.com/insightsengineering/teal.modules.hermes.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.hermes_15b1e307810ca8699d3fc80b887a2add
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.hermes_15b1e307810ca8699d3fc80b887a2add
#> clone https://github.com/insightsengineering/teal.modules.helios.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.helios_737600447efe0473ee9d8c8ca851127e
#> Warning in value[[3L]](cond): You cannot access insightsengineering/teal.modules.helios at host https://github.com. If you expect to be able to access this repo then check that repo and token in envvar 'GITHUB_PAT' are correct.
#> The response's content was:
#> Not Found
#> https://docs.github.com/rest/reference/repos#get-a-repository Staged dependencies will continue, ignoring this repository. Some packages may not be able to be installed and its package name is assumed to match repository name.
#> clone https://github.com/insightsengineering/teal.logger.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.logger_db3be93ac2413ef16521b0cf8fe202ad
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.logger_db3be93ac2413ef16521b0cf8fe202ad
#> clone https://github.com/insightsengineering/teal.data.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.data_39f26acbb991125a81ff5392c742cf86
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.data_39f26acbb991125a81ff5392c742cf86
#> clone https://github.com/insightsengineering/scda.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_scda_6ea836b807b2d80ac7feb032e00c8aa2
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_scda_6ea836b807b2d80ac7feb032e00c8aa2
#> clone https://github.com/insightsengineering/scda.2022.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.2022_fae81d8a1331fd1546c933c074ca8409
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.2022_fae81d8a1331fd1546c933c074ca8409
#> clone https://github.com/insightsengineering/formatters.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_formatters_2af660375fccd6c369329f665710ecae
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_formatters_2af660375fccd6c369329f665710ecae
#> clone https://github.com/insightsengineering/teal.reporter.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.reporter_2c5a990a10b0c9b8f7bccf13bd04db2a
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.reporter_2c5a990a10b0c9b8f7bccf13bd04db2a
#> clone https://github.com/insightsengineering/nestcolor.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_nestcolor_2b763bd91b720d7414fc50e163378834
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_nestcolor_2b763bd91b720d7414fc50e163378834
#> clone https://github.com/insightsengineering/tern.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern_05d8cd0d757a67b0d1c893284424007a
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern_05d8cd0d757a67b0d1c893284424007a
#> clone https://github.com/insightsengineering/tern.mmrm.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.mmrm_ee1a7fba6deed5dd13ca0466e1c4e968
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.mmrm_ee1a7fba6deed5dd13ca0466e1c4e968
#> clone https://github.com/insightsengineering/goshawk.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_goshawk_ca859ec43e2cee0eae1bf7222663c98c
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_goshawk_ca859ec43e2cee0eae1bf7222663c98c
#> clone https://github.com/insightsengineering/osprey.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_osprey_fd4956fcddf407f7776ca93a88340830
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_osprey_fd4956fcddf407f7776ca93a88340830
#> clone https://github.com/insightsengineering/tern.rbmi.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.rbmi_6a1fe99ca79df0966c0be53c96d0d6af
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.rbmi_6a1fe99ca79df0966c0be53c96d0d6af
#> clone https://github.com/insightsengineering/chevron.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_chevron_22a6dec8d97d5eb2c4cca8dbf1a885ed
#> Warning in value[[3L]](cond): You cannot access insightsengineering/chevron at host https://github.com. If you expect to be able to access this repo then check that repo and token in envvar 'GITHUB_PAT' are correct.
#> The response's content was:
#> Not Found
#> https://docs.github.com/rest/reference/repos#get-a-repository Staged dependencies will continue, ignoring this repository. Some packages may not be able to be installed and its package name is assumed to match repository name.
#> clone https://github.com/insightsengineering/tern.gee.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.gee_3aaa7fadfce37dee6734b561dcbf376c
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.gee_3aaa7fadfce37dee6734b561dcbf376c
#> clone https://github.com/insightsengineering/hermes.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_hermes_c774027dbd79477ddd2093c770a88021
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_hermes_c774027dbd79477ddd2093c770a88021
#> clone https://github.com/insightsengineering/rlistings.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_rlistings_7c08b1222c8163799de3c79a683ecc9c
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/insightsengineering_rlistings_7c08b1222c8163799de3c79a683ecc9c
#> clone https://github.com/openpharma/mmrm.git to directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/openpharma_mmrm_c14d28304e10a1542c52a0103838d41f
#>    - checkout branch origin/main in directory C:/Users/andre/OneDrive/Documents/.staged.dependencies/packages_cache/openpharma_mmrm_c14d28304e10a1542c52a0103838d41f

Created on 2022-10-27 by the reprex package (v2.0.1)

nikolas-burkoff commented 1 year ago

I guess we need to distinguish the case when a warning should be thrown (i.e. because there's a typo in a staged.dep file and a repo is not found) and when it shouldn't be because someone doesn't have access to something. Not sure how to do that...

asbates commented 1 year ago

Maybe a try/catch and search for something like 'cannot access'? Although that doesn't feel very robust to me.

nikolas-burkoff commented 1 year ago

But if there's a typo you also get access denied:

image