Skip to content

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

Test Plan

Run in staging ok [1]


Migrated from D8825 (view on Phabricator)

Merge request reports