reichlab / reichlab-repo-utils

Script to standardize permissions and branch settings for Reichlab repos
MIT License
0 stars 0 forks source link

Standardize repo config and access across Reich Lab #2

Closed bsweger closed 2 weeks ago

bsweger commented 1 month ago

Write a script to standardize access and branch protections across all repos in the Reich Lab (with the exception of a few that would break as a result of branch protection updates, as noted here: https://docs.google.com/document/d/1KA83U0p7UN_2wniE0gCZOj1HIFCy4pwgxf9G9cuMcAk/edit#heading=h.2pn3d3m3qn6t).

List of reichlab repos: https://docs.google.com/spreadsheets/d/1UaVsqGQ2uyI42t8HWTQjt0MthQJ-o4Yom0-Q2ahBnJc/edit#gid=1230520805

Definition of done:

bsweger commented 1 month ago

I removed the first item from this issue's original "definition of done" list:

All reichlab org members have "direct" access to reichlab repos (e.g., can push to a branch)

In July, GitHub introduced pre-defined organization roles, which are a better way to control permissions (and won't require specific updates when people join or leave the reichlab github org)

https://github.blog/changelog/2024-07-10-pre-defined-organization-roles-that-grant-access-to-all-repositories/

Created another issue for setting this up: #3

bsweger commented 2 weeks ago

The code to archive repos and add branch protections was merged several days ago (hence the issue closing prematurely).

After adding a few more repos to the "archive" list, I ran the scripts.

Adding rulesets output

add_default_rulesets
2024-08-29 13:09:37 [info     ] dengue-reporting
2024-08-29 13:09:38 [info     ] Successfully applied branch ruleset to dengue-reporting
2024-08-29 13:09:38 [info     ] pymmwr
2024-08-29 13:09:38 [info     ] Successfully applied branch ruleset to pymmwr
2024-08-29 13:09:38 [info     ] forecast-repository
2024-08-29 13:09:38 [info     ] Successfully applied branch ruleset to forecast-repository
2024-08-29 13:09:38 [info     ] sarimaTD
2024-08-29 13:09:38 [info     ] Successfully applied branch ruleset to sarimaTD
2024-08-29 13:09:38 [info     ] wiki
2024-08-29 13:09:39 [info     ] Successfully applied branch ruleset to wiki
2024-08-29 13:09:39 [info     ] zoltpy
2024-08-29 13:09:39 [info     ] Successfully applied branch ruleset to zoltpy
2024-08-29 13:09:39 [info     ] zoltr
2024-08-29 13:09:39 [info     ] Successfully applied branch ruleset to zoltr
2024-08-29 13:09:39 [info     ] flusense-data
2024-08-29 13:09:39 [info     ] Successfully applied branch ruleset to flusense-data
2024-08-29 13:09:39 [info     ] docs.zoltardata
2024-08-29 13:09:40 [info     ] Successfully applied branch ruleset to docs.zoltardata
2024-08-29 13:09:40 [info     ] covidData
2024-08-29 13:09:40 [info     ] Successfully applied branch ruleset to covidData
2024-08-29 13:09:40 [info     ] election-forecast
2024-08-29 13:09:40 [info     ] Successfully applied branch ruleset to election-forecast
2024-08-29 13:09:40 [info     ] qenspy
2024-08-29 13:09:40 [info     ] Successfully applied branch ruleset to qenspy
2024-08-29 13:09:40 [info     ] qensr
2024-08-29 13:09:41 [info     ] Successfully applied branch ruleset to qensr
2024-08-29 13:09:41 [info     ] flu-hosp-models-2021-2022
2024-08-29 13:09:41 [info     ] Successfully applied branch ruleset to flu-hosp-models-2021-2022
2024-08-29 13:09:41 [info     ] simplets
2024-08-29 13:09:41 [info     ] Successfully applied branch ruleset to simplets
2024-08-29 13:09:41 [info     ] covid-hosp-models
2024-08-29 13:09:41 [info     ] Successfully applied branch ruleset to covid-hosp-models
2024-08-29 13:09:41 [info     ] genomicdata
2024-08-29 13:09:42 [info     ] Successfully applied branch ruleset to genomicdata
2024-08-29 13:09:42 [info     ] jacques
2024-08-29 13:09:42 [info     ] Successfully applied branch ruleset to jacques
2024-08-29 13:09:42 [info     ] jacques-covid
2024-08-29 13:09:42 [info     ] Successfully applied branch ruleset to jacques-covid
2024-08-29 13:09:42 [info     ] timeseriesutils
2024-08-29 13:09:42 [info     ] Successfully applied branch ruleset to timeseriesutils
2024-08-29 13:09:42 [info     ] rclp
2024-08-29 13:09:43 [info     ] Successfully applied branch ruleset to rclp
2024-08-29 13:09:43 [info     ] distfromq
2024-08-29 13:09:43 [info     ] Successfully applied branch ruleset to distfromq
2024-08-29 13:09:43 [info     ] predtimechart
2024-08-29 13:09:43 [info     ] Successfully applied branch ruleset to predtimechart
2024-08-29 13:09:43 [info     ] malaria-serology
2024-08-29 13:09:43 [info     ] Successfully applied branch ruleset to malaria-serology
2024-08-29 13:09:43 [info     ] flusion
2024-08-29 13:09:43 [info     ] Successfully applied branch ruleset to flusion
2024-08-29 13:09:43 [info     ] sarix-covid
2024-08-29 13:09:44 [info     ] Successfully applied branch ruleset to sarix-covid
2024-08-29 13:09:44 [info     ] conditional-calibration
2024-08-29 13:09:44 [info     ] Successfully applied branch ruleset to conditional-calibration
2024-08-29 13:09:44 [info     ] container-utils
2024-08-29 13:09:44 [info     ] Successfully applied branch ruleset to container-utils
2024-08-29 13:09:44 [info     ] variant-nowcast-hub
2024-08-29 13:09:44 [info     ] Successfully applied branch ruleset to variant-nowcast-hub
2024-08-29 13:09:44 [info     ] idforecastutils
2024-08-29 13:09:45 [info     ] Successfully applied branch ruleset to idforecastutils
2024-08-29 13:09:45 [info     ] flusion-manuscript
2024-08-29 13:09:45 [info     ] Successfully applied branch ruleset to flusion-manuscript
2024-08-29 13:09:45 [info     ] pytorch-exploration
2024-08-29 13:09:45 [info     ] Successfully applied branch ruleset to pytorch-exploration
2024-08-29 13:09:45 [info     ] FluSight-forecast-hub
2024-08-29 13:09:45 [info     ] Successfully applied branch ruleset to FluSight-forecast-hub
2024-08-29 13:09:45 [info     ] predtimechart-s3-example
2024-08-29 13:09:45 [info     ] Successfully applied branch ruleset to predtimechart-s3-example
2024-08-29 13:09:45 [info     ] hubverse-cloud-viz
2024-08-29 13:09:46 [info     ] Successfully applied branch ruleset to hubverse-cloud-viz
2024-08-29 13:09:46 [info     ] trendsEnsemble
2024-08-29 13:09:46 [info     ] Successfully applied branch ruleset to trendsEnsemble
2024-08-29 13:09:46 [info     ] reichlab-python-template
2024-08-29 13:09:46 [warning  ] Failed to apply branch ruleset (likely because it already exists) repo=reichlab-python-template response={'message': 'Validation Failed', 'errors': ['Name must be unique'], 'documentation_url': 'https://docs.github.com/rest/repos/rules#create-a-repository-ruleset', 'status': '422'}
2024-08-29 13:09:46 [info     ] reichlab-repo-utils
2024-08-29 13:09:46 [info     ] Successfully applied branch ruleset to reichlab-repo-utils
2024-08-29 13:09:46 [info     ] virus-clade-utils
2024-08-29 13:09:47 [warning  ] Failed to apply branch ruleset (likely because it already exists) repo=virus-clade-utils response={'message': 'Validation Failed', 'errors': ['Name must be unique'], 'documentation_url': 'https://docs.github.com/rest/repos/rules#create-a-repository-ruleset', 'status': '422'}
2024-08-29 13:09:47 [info     ] All rulesets applied           count=37

Archiving output

archive_repos
2024-08-29 13:10:47 [info     ] ALERT
2024-08-29 13:10:47 [info     ] Successfully archived ALERT
2024-08-29 13:10:47 [info     ] reviewMID
2024-08-29 13:10:47 [info     ] Successfully archived reviewMID
2024-08-29 13:10:47 [info     ] dengue-ssr-prediction
2024-08-29 13:10:48 [info     ] Successfully archived dengue-ssr-prediction
2024-08-29 13:10:48 [info     ] style
2024-08-29 13:10:48 [info     ] Successfully archived style
2024-08-29 13:10:48 [info     ] pdtmvn
2024-08-29 13:10:48 [info     ] Successfully archived pdtmvn
2024-08-29 13:10:48 [info     ] ssr-influenza-competition
2024-08-29 13:10:48 [info     ] Successfully archived ssr-influenza-competition
2024-08-29 13:10:48 [info     ] activemonitr
2024-08-29 13:10:49 [info     ] Successfully archived activemonitr
2024-08-29 13:10:49 [info     ] kcde
2024-08-29 13:10:49 [info     ] Successfully archived kcde
2024-08-29 13:10:49 [info     ] article-disease-pred-with-kcde
2024-08-29 13:10:49 [info     ] Successfully archived article-disease-pred-with-kcde
2024-08-29 13:10:49 [info     ] se-asia-annual-preds
2024-08-29 13:10:50 [info     ] Successfully archived se-asia-annual-preds
2024-08-29 13:10:50 [info     ] Dengue-district-map
2024-08-29 13:10:50 [info     ] Successfully archived Dengue-district-map
2024-08-29 13:10:50 [info     ] spatialpred
2024-08-29 13:10:50 [info     ] Successfully archived spatialpred
2024-08-29 13:10:50 [info     ] dengueThailand
2024-08-29 13:10:50 [info     ] Successfully archived dengueThailand
2024-08-29 13:10:50 [info     ] mvtnorm-mod-kcde
2024-08-29 13:10:51 [info     ] Successfully archived mvtnorm-mod-kcde
2024-08-29 13:10:51 [info     ] dengue-thailand-2014-forecasts
2024-08-29 13:10:51 [info     ] Successfully archived dengue-thailand-2014-forecasts
2024-08-29 13:10:51 [info     ] bangkok-forecasting
2024-08-29 13:10:51 [info     ] Successfully archived bangkok-forecasting
2024-08-29 13:10:51 [info     ] shiny-predictions
2024-08-29 13:10:51 [info     ] Successfully archived shiny-predictions
2024-08-29 13:10:51 [info     ] annual-predictions-paper
2024-08-29 13:10:52 [info     ] Successfully archived annual-predictions-paper
2024-08-29 13:10:52 [info     ] forecastTools
2024-08-29 13:10:52 [info     ] Successfully archived forecastTools
2024-08-29 13:10:52 [info     ] chikv-inference
2024-08-29 13:10:52 [info     ] Successfully archived chikv-inference
2024-08-29 13:10:52 [info     ] 2016-2017-flu-contest-ensembles
2024-08-29 13:10:52 [info     ] Successfully archived 2016-2017-flu-contest-ensembles
2024-08-29 13:10:52 [info     ] xgbstack
2024-08-29 13:10:53 [info     ] Successfully archived xgbstack
2024-08-29 13:10:53 [info     ] delay-analysis-method
2024-08-29 13:10:53 [info     ] Successfully archived delay-analysis-method
2024-08-29 13:10:53 [info     ] mmwr-week
2024-08-29 13:10:53 [info     ] Successfully archived mmwr-week
2024-08-29 13:10:53 [info     ] R6spatialpred
2024-08-29 13:10:54 [info     ] Successfully archived R6spatialpred
2024-08-29 13:10:54 [info     ] dengue-data
2024-08-29 13:10:54 [info     ] Successfully archived dengue-data
2024-08-29 13:10:54 [info     ] under-reported
2024-08-29 13:10:54 [info     ] Successfully archived under-reported
2024-08-29 13:10:54 [info     ] neural-stack
2024-08-29 13:10:54 [info     ] Successfully archived neural-stack
2024-08-29 13:10:54 [info     ] adaptively-weighted-ensemble
2024-08-29 13:10:55 [info     ] Successfully archived adaptively-weighted-ensemble
2024-08-29 13:10:55 [info     ] delay-analysis-dynamic
2024-08-29 13:10:55 [info     ] Successfully archived delay-analysis-dynamic
2024-08-29 13:10:55 [info     ] d3-foresight
2024-08-29 13:10:55 [info     ] Successfully archived d3-foresight
2024-08-29 13:10:55 [info     ] dengue-data-stub
2024-08-29 13:10:55 [info     ] Successfully archived dengue-data-stub
2024-08-29 13:10:55 [info     ] TSIRsim
2024-08-29 13:10:56 [info     ] Successfully archived TSIRsim
2024-08-29 13:10:56 [info     ] xgboost-mod
2024-08-29 13:10:56 [info     ] Successfully archived xgboost-mod
2024-08-29 13:10:56 [info     ] flusight-test
2024-08-29 13:10:56 [info     ] Successfully archived flusight-test
2024-08-29 13:10:56 [info     ] densitystackr
2024-08-29 13:10:57 [info     ] Successfully archived densitystackr
2024-08-29 13:10:57 [info     ] kcde-via-stacking
2024-08-29 13:10:57 [info     ] Successfully archived kcde-via-stacking
2024-08-29 13:10:57 [info     ] forecastingForest
2024-08-29 13:10:57 [info     ] Successfully archived forecastingForest
2024-08-29 13:10:57 [info     ] thaiDhfDwe
2024-08-29 13:10:57 [info     ] Successfully archived thaiDhfDwe
2024-08-29 13:10:57 [info     ] challenges-inference-filtering
2024-08-29 13:10:58 [info     ] Successfully archived challenges-inference-filtering
2024-08-29 13:10:58 [info     ] 2017-2018-cdc-flu-contest
2024-08-29 13:10:58 [info     ] Successfully archived 2017-2018-cdc-flu-contest
2024-08-29 13:10:58 [info     ] flu-eda
2024-08-29 13:10:58 [info     ] Successfully archived flu-eda
2024-08-29 13:10:58 [info     ] thai-dengue-district-challenge
2024-08-29 13:10:58 [info     ] Successfully archived thai-dengue-district-challenge
2024-08-29 13:10:58 [info     ] diffport
2024-08-29 13:10:59 [info     ] Successfully archived diffport
2024-08-29 13:10:59 [info     ] delay-analysis-thailand
2024-08-29 13:10:59 [info     ] Successfully archived delay-analysis-thailand
2024-08-29 13:10:59 [info     ] survival-densities
2024-08-29 13:10:59 [info     ] Successfully archived survival-densities
2024-08-29 13:10:59 [info     ] dengue-scraps
2024-08-29 13:11:00 [info     ] Successfully archived dengue-scraps
2024-08-29 13:11:00 [info     ] bayesian_non_parametric
2024-08-29 13:11:00 [info     ] Successfully archived bayesian_non_parametric
2024-08-29 13:11:00 [info     ] FluSight-package
2024-08-29 13:11:00 [info     ] Successfully archived FluSight-package
2024-08-29 13:11:00 [info     ] xpull
2024-08-29 13:11:00 [info     ] Successfully archived xpull
2024-08-29 13:11:00 [info     ] flusight-csv-tools
2024-08-29 13:11:01 [info     ] Successfully archived flusight-csv-tools
2024-08-29 13:11:01 [info     ] pkr
2024-08-29 13:11:01 [info     ] Successfully archived pkr
2024-08-29 13:11:01 [info     ] tracking-ensemble
2024-08-29 13:11:01 [info     ] Successfully archived tracking-ensemble
2024-08-29 13:11:01 [info     ] ledge
2024-08-29 13:11:01 [info     ] Successfully archived ledge
2024-08-29 13:11:01 [info     ] moph-forecast-files
2024-08-29 13:11:02 [info     ] Successfully archived moph-forecast-files
2024-08-29 13:11:02 [info     ] online-lag-ensemble
2024-08-29 13:11:02 [info     ] Successfully archived online-lag-ensemble
2024-08-29 13:11:02 [info     ] pfep
2024-08-29 13:11:02 [info     ] Successfully archived pfep
2024-08-29 13:11:02 [info     ] forecast-framework-demos
2024-08-29 13:11:03 [info     ] Successfully archived forecast-framework-demos
2024-08-29 13:11:03 [info     ] hforecast
2024-08-29 13:11:03 [info     ] Successfully archived hforecast
2024-08-29 13:11:03 [info     ] 2018-2019-cdc-flu-contest
2024-08-29 13:11:03 [info     ] Successfully archived 2018-2019-cdc-flu-contest
2024-08-29 13:11:03 [info     ] german-flu-forecasting
2024-08-29 13:11:03 [info     ] Successfully archived german-flu-forecasting
2024-08-29 13:11:03 [info     ] cdcfluutils
2024-08-29 13:11:04 [info     ] Successfully archived cdcfluutils
2024-08-29 13:11:04 [info     ] cdcfluforecasts
2024-08-29 13:11:04 [info     ] Successfully archived cdcfluforecasts
2024-08-29 13:11:04 [info     ] ncov
2024-08-29 13:11:04 [info     ] Successfully archived ncov
2024-08-29 13:11:04 [info     ] foresight-visualization-template
2024-08-29 13:11:05 [info     ] Successfully archived foresight-visualization-template
2024-08-29 13:11:05 [info     ] cdcForecastUtils
2024-08-29 13:11:05 [info     ] Successfully archived cdcForecastUtils
2024-08-29 13:11:05 [info     ] covid19ILIUMassCoEModels
2024-08-29 13:11:05 [info     ] Successfully archived covid19ILIUMassCoEModels
2024-08-29 13:11:05 [info     ] covid-19-ili-forecasting-models
2024-08-29 13:11:05 [info     ] Successfully archived covid-19-ili-forecasting-models
2024-08-29 13:11:05 [info     ] epiWaves
2024-08-29 13:11:06 [info     ] Successfully archived epiWaves
2024-08-29 13:11:06 [info     ] wnv
2024-08-29 13:11:06 [info     ] Successfully archived wnv
2024-08-29 13:11:06 [info     ] proper-scores-comparison
2024-08-29 13:11:06 [info     ] Successfully archived proper-scores-comparison
2024-08-29 13:11:06 [info     ] hierarchicalGP
2024-08-29 13:11:06 [info     ] Successfully archived hierarchicalGP
2024-08-29 13:11:06 [info     ] covidEnsembles
2024-08-29 13:11:07 [info     ] Successfully archived covidEnsembles
2024-08-29 13:11:07 [info     ] lssm
2024-08-29 13:11:07 [info     ] Successfully archived lssm
2024-08-29 13:11:07 [info     ] pylssm
2024-08-29 13:11:07 [info     ] Successfully archived pylssm
2024-08-29 13:11:07 [info     ] covid19-forecast-evals
2024-08-29 13:11:08 [info     ] Successfully archived covid19-forecast-evals
2024-08-29 13:11:08 [info     ] flusurv-forecasts-2020-2021
2024-08-29 13:11:08 [info     ] Successfully archived flusurv-forecasts-2020-2021
2024-08-29 13:11:08 [info     ] covid19-forecast-hub-validations
2024-08-29 13:11:08 [info     ] Successfully archived covid19-forecast-hub-validations
2024-08-29 13:11:08 [info     ] midas2021
2024-08-29 13:11:08 [info     ] Successfully archived midas2021
2024-08-29 13:11:08 [info     ] covid19-ensemble-methods-manuscript
2024-08-29 13:11:09 [info     ] Successfully archived covid19-ensemble-methods-manuscript
2024-08-29 13:11:09 [info     ] casebot
2024-08-29 13:11:09 [info     ] Successfully archived casebot
2024-08-29 13:11:09 [info     ] covid-forecast-eval-post
2024-08-29 13:11:09 [info     ] Successfully archived covid-forecast-eval-post
2024-08-29 13:11:09 [info     ] hubEnsembles
2024-08-29 13:11:09 [info     ] Successfully archived hubEnsembles
2024-08-29 13:11:09 [info     ] nuxt-forecast-viz
2024-08-29 13:11:10 [info     ] Successfully archived nuxt-forecast-viz
2024-08-29 13:11:10 [info     ] covid-hosp-forecasts-with-cases
2024-08-29 13:11:10 [info     ] Successfully archived covid-hosp-forecasts-with-cases
2024-08-29 13:11:10 [info     ] abc-model-selection
2024-08-29 13:11:10 [info     ] Successfully archived abc-model-selection
2024-08-29 13:11:10 [info     ] Flusight-forecast-data
2024-08-29 13:11:11 [info     ] Successfully archived Flusight-forecast-data
2024-08-29 13:11:11 [info     ] hub-infrastructure-experiments
2024-08-29 13:11:11 [info     ] Successfully archived hub-infrastructure-experiments
2024-08-29 13:11:11 [info     ] ensemble-size
2024-08-29 13:11:11 [info     ] Successfully archived ensemble-size
2024-08-29 13:11:11 [info     ] gbq_operational
2024-08-29 13:11:11 [info     ] Successfully archived gbq_operational
2024-08-29 13:11:11 [info     ] ardfa
2024-08-29 13:11:12 [info     ] Successfully archived ardfa
2024-08-29 13:11:12 [info     ] pykwalify
2024-08-29 13:11:12 [info     ] Successfully archived pykwalify
2024-08-29 13:11:12 [info     ] make-example
2024-08-29 13:11:12 [info     ] Successfully archived make-example
2024-08-29 13:11:12 [info     ] predictability
2024-08-29 13:11:13 [info     ] Successfully archived predictability
2024-08-29 13:11:13 [info     ] ensemble-comparison
2024-08-29 13:11:13 [info     ] Successfully archived ensemble-comparison
2024-08-29 13:11:13 [info     ] container-demo-app
2024-08-29 13:11:13 [info     ] Successfully archived container-demo-app
2024-08-29 13:11:13 [info     ] llmtime
2024-08-29 13:11:14 [info     ] Successfully archived llmtime
2024-08-29 13:11:14 [info     ] streamlit-flusight
2024-08-29 13:11:14 [info     ] Successfully archived streamlit-flusight
2024-08-29 13:11:14 [info     ] Repository archive complete    count=98