Configure gitlab projects declaratively
This allows to define the configuration for managed repositories in order from
global (.e.g. merge request merge policy) to namespace (e.g. deactivate issue tracker)
to specific project (e.g. private visibility, etc...).
This only deals with the declared namespaced projects in the configuration file. This
skips the remaining existing gitlab projects (user projects, ...).
Use:
$ python manage_projects.py --gitlab swh projects.yml | jq . { "infra/ci-cd/swh-charts": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/swh-apps": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-zfs_core": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-elastic-elastic_stack": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-translate": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-redis": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-java_ks": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-treydock-keycloak": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-cassandra": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/getsentry-onpremise": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-docker": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-rabbitmq": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/swh-ansible": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppet-letsencrypt": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-covermymeds-pgbouncer": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/swh-grafana-dashboards": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/puppet-swh-private-data-censored": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-richardc-datacat": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-elastic-elasticsearch": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-deric-zookeeper": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-java": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-archive": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-kafka": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-grafana": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-prometheus": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-php": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-camptocamp-systemd": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-openstack-ceph": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-claranet-varnish": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-ssm-hitch": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-vcsrepo": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-icinga-icingaweb2": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-inifile": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-puppetdb": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-nginx": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-unattended_upgrades": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-memcached": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-stm-debconf": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-timezone": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-gunicorn": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-postgresql": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-icinga-icinga2": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-resolv_conf": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-arioch-redis": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppet-extlib": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-wikimedia-kafka": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-wikimedia-zookeeper": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-mediawiki": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-mosen-cups": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-uwsgi": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/puppet-swh-systemd": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-apt": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-sudo": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-stdlib": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-ssh": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-role": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/swh-sysadmin-provisioning": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-theforeman-puppet": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-profile": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/puppet-swh-private-data": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-thias-php": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-postfix": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-ntp": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-mysql": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-ssm-munin": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-ripienaar-module_data": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-saz-locales": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-rlenglet-debconf_package": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-trepasi-debnet": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-swh-dar": { "merge_method": { "old": "merge", "new": "ff" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-concat": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-inkblot-bind": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/3rdparty/puppet-puppetlabs-apache": { "merge_method": { "old": "merge", "new": "ff" }, "issues_access_level": { "old": "enabled", "new": "disabled" } } } { "infra/puppet/puppet-environment": { "merge_method": { "old": "merge", "new": "ff" } } } { "nb_projects": 86, "nb_updated_projects": 0, "dry_run": true }
gitlab api: https://docs.gitlab.com/ee/api/projects.html#edit-project