If replicate_local is set, this will ensure that /var/lib/git is created,
and that projects listed in the projects.config have repos there.
Additionally, it creates a new config file, projects.config which is a
yaml file listing all of the projects and various operational semantics about
them, such as whether or not they should have pull requests closed and whether
or not they track any remotes. This replaces remotes.config and github.config.
Moving forward, there is no reason to not have this script be able to
do github api calls to create the github repo if it's not there, set the
github project description, gerrit api calls to create the project in gerrit,
and initial project permissions templates.
Change-Id: I1ad803b0aa5f7386206d0c3f4cd858017242fe64
Additionally, the file installation of the scripts wasn't working,
so the sync script wasn't actually getting installed. This moves
the underlying scripts to be installed by the gerrit module,
because it owns /usr/local/gerrit/scripts, and then manages the
gerrit hooks which call those scripts in the openstack_project
class, since that's where the config choice to enable those
functions really should live.
Change-Id: I54fb9edd9fb0c634d8d9de4e57f9ddad6af63a99
Set the replication authGroup for github to Anonymous Users.
Enable the "mirror" option which "will remove remote branches that absent
locally or invisible to the replication (i.e. read access denied via
authGroup option)."
Disable replicatePermissions which will cause permissions-only projects and
the refs/meta/config branch not to be replicated. I'm ambivalent about
refs/meta/config, but disabling permissions-only projects will remove
the periodic errors we get when trying to replicate All-Projects to github.
Change-Id: I9c302b68e0a213d35683d7105341788923c5770a
Launchpad integration and the OpenStack branding files are really
more about the OpenStack specific install of Gerrit than they are
about any installation of gerrit. Both of these are moved to the
openstack_project module.
Change-Id: I8b281aa5cb751a8023c2101c45146a3aca5f90f3
TODO: Add another script that sets the project description. Add the project
description to the config hash.
Change-Id: If4584b2a1e55e6eb912e1f557e31de216d49a516
The openstack documentation team has a new mailing list in part to
accomodate the DocImpact notifier. Update the destination address in
the notify_doc_impact script to send mail to
openstack-docs@lists.openstack.org.
Change-Id: I041194298a18e5f710c6e3bd7221dee2099733e8
Assumes that every project in gerrit has a corresponding repo in
/var/lib/git that can be replicated to. That's probably a one-time offline
creation, followed by an additional step in the adding a project docs.
Change-Id: If9b987717550d5b251366c1408d949c55e64828a
heat is in heat-api/heat
Verify trigger is for -2 in the code, not -1
Heat's repo is in heat-api instead of stackforge, so Gerritbot needs
to monitor that
Change-Id: I0526a32489c9af67198fcebeebdf3271c5751c49
Fixes bug #1020987
Update GerritBot with the ability to talk on multiple channels. This
way a single GerritBot instance can operate in multiple channels for
multiple projects. To make this work this change introduces a new
channel configuration file (yaml) for GerritBot that specifies each
channel that GerritBot should join and the changes that channel is
interested in.
The config should look something like:
channel-foo:
events:
- patchset-created
- change-merged
projects:
- test/bar
- test/foo
branches:
- master
Change-Id: I8e278f9be5182611981a3d912cc323bd3d386fc5
Stop marking python-PROJECT client bug fixes as fixed in PROJECT, by
removing the exception mapping. This is due to client projects now
having their own Launchpad project.
Change-Id: I56471c9efff143f79421729880626c5e78c6200b
Add a doc impact notifier to Gerrit that will email the documentation
team whenever changes with "DocImpact" in their commit messages are
pushed to Gerrit.
Change-Id: Ibbb4ac740efa60ef44fd4753ad8459437d98e592
Fixes bug #1012310
Seems github won't let you request an issue if issues are disabled
on a repo. So attempt to get around this by creating an Issue object
derived from a pull requests URL. Then comment on this issue object.
Change-Id: If64640ebc1d86d86360e5657f4245541620fcebb
Fixes bug #1012310
Old version of script didn't appear able to find repos as part of
organizations. Update script to search for the repos under orgs.
Change-Id: I04696152bc3b7ecb63a5704768c27ff796d3ffc9
Fixes bug #1012310
Github disabled v1 and v2 of their API permanently, forcing us to
update the script that closes Github pull requests to v3 of the API.
Update the script using the PyGithub lib.
Change-Id: I90c9faacdb7a72a470b8ad6aaea674edd9b8329e
We get this error in cron:
/usr/local/gerrit/scripts/update_gerrit_users.py:339: UnicodeWarning:
Unicode equal comparison failed to convert both arguments to Unicode -
interpreting them as being unequal
if key.strip() not in db_keys:
The stuff from Launchpad comes back as unicode, but the stuff from MySQL
comes back as string, which makes the in comparison wonky.
Perhaps we should upgrade the database to unicode properly as well...
Change-Id: I5ef66763429ca490d799ebb5b030abdc4d5de67e
The default values for locations were wrong.
The config file name is remotes.config.
The git repos are in /home/gerrit2/review_site/git.
Change-Id: Ie887b2424e3ee50f802573e147cd4751e390d3e8
Makes update_bug.py Gerrit/LP hook support setting series-specific
bug tasks to FixCommitted status on change-merged to stable/*
branches. Fixes bug 921588.
Also sets "In Progress" on patchset-created to stable/*.
Change-Id: I5e3b7c8d249755a71f3425dd33151764be2a1485
MySQL binlogs are filling up quick due to lots of delete statements during user
sync that don't delete any rows. We could test to see if the rows exist first
but this would be a performance hit on a script that takes forever to run as it
is (plus the new sync script will work differently and not have this problem).
Switching to RBR which will only log row changes so will ignore these deletes.
Fixes bug #1002550
Change-Id: Ief2097de63bd0a5bde129b72cec87ff3745a6ea1
There are a set of projects which release directly from git,
so we can just set them directly to fix released.
Fixes bug 943413.
Change-Id: I0186b67efaa5eee7130ae9d5a677dfb2951a98e8
Previously the user update script only synced the SSH keys upon adding a user.
This will make it add new keys to gerrit on every run.
Fixes bug #1001180
Also added a lock file since it is sometimes taking longer than 15 minutes to
execute (especially now we are pulling SSH keys) and has jammed up StackForge.
Change-Id: I28fd0f557568c20a07e724bcd3d9c789a62fff42
Not all gerrit installations are configured the same. This adds parameters
to the gerrit sync script and expire script so that it can work from the
command line and cron on all servers.
Fixes bug #994201
Change-Id: Iac37e18aaf7a10fb5594be233e33b000eabed336
From Jim: "I think the confusion may be coming from people who only see this
message via email. In that case, indicating that the button is available in the
web UI when visiting the change may be helpful."
Done!
Change-Id: I1125cfc5040b6351ef956527b90e71f4d33f30a0
Add python-cinderclient to pull-requests closing.,
Add python-cinderclient jenkins jobs.
Re-add cinder and python-openstackclient and python-glanceclient to jenkins.
Change-Id: I415a0f6586f6c22036715513c38b5105ff319809
Fixes bug 951600.
The update_gerrit_users.py script creates a database backup
everytime it runs. This change compresses the backups as they
are being made and adds a cron job that will remove backups that
are 30 days or older. Current backups will need to be manually
compressed.
Change-Id: Idb90d4af629892f1bc2e3e98f35f7de2ad58d4be
Take the things from openstack-ci/gerrit and move them directly
in to the puppet module. Install them using the model we're using
for the jenkins slave scripts.
Change-Id: I420b2b895bd57d40232b2cdda437617373a82890
Upgrade gerrit to 2.3.0.
Add management of the apache virtualhost.
Remove gerrit body styling (including the javascript hack) in favor
of using the gerrit theme config options for body styling. Keep header
and top menu changes. This should make it easier to keep up with new
gerrit versions without chasing weird GWT changes.
Add management of the gerrit init script.
Add management of MySQL.
Add installation and upgrading of Gerrit.
Change-Id: Idf9e551552d335a2ae82cd27a63edcf6daf94115