Add full-repository support for Review Bot tools with git.
Review Request #8817 — Created March 15, 2017 and submitted
This change adds a way for Review Bot tools to operate with an entire checkout
of a (git) repository. This requires a fair amount of configuration on the
worker side, which I'm planning to document more thoroughly in a forthcoming
user manual.When one or more repositories is configured, the worker will listen on a new
set of queues (the product of the list of repositories and the available tools
which can run on full repos). This way, a worker will only pick up tasks for
repositories which it has available.When a change using a repository is triggered for review, the repository is
either cloned (if it doesn't exist), or fetched. This repo is then
shallow-cloned to the desired parent revision and the patched files are
downloaded. The tool can then do whatever it needs with the repo and post its
review.
- Verified that clone/fetch and the shallow cloned worked as expected.
- Used this in conjunction with a Clang Static Analyzer tool.
Description | From | Last Updated |
---|---|---|
Col: 80 E501 line too long (81 > 79 characters) |
reviewbot | |
Col: 80 E501 line too long (80 > 79 characters) |
reviewbot | |
Col: 80 E501 line too long (85 > 79 characters) |
reviewbot | |
Col: 80 E501 line too long (81 > 79 characters) |
reviewbot | |
Col: 80 E501 line too long (83 > 79 characters) |
reviewbot | |
'os' imported but unused |
reviewbot | |
Col: 80 E501 line too long (81 > 79 characters) |
reviewbot | |
undefined name 'logging' |
reviewbot | |
undefined name 'logging' |
reviewbot | |
You don't need .keys() to iterate over the dict's keys. Iterating over it will yield the keys. |
brennie | |
This is going to get big over time as we add support for more types. Let's split this up now, … |
chipx86 | |
Clang? |
chipx86 | |
Is there any mechanism to send parameters using something akin to keyword arguments? Maybe send a dictionary across? I worry … |
chipx86 | |
Unnecessary blank line. |
brennie |
-
Tool: PEP8 Style Checker Processed Files: bot/reviewbot/tasks.py bot/reviewbot/tools/__init__.py bot/reviewbot/repositories.py extension/reviewbotext/integration.py bot/reviewbot/utils/filesystem.py bot/reviewbot/tools/buildbot.py bot/reviewbot/celery.py extension/reviewbotext/resources.py extension/reviewbotext/models.py bot/reviewbot/config.py Tool: Pyflakes Processed Files: bot/reviewbot/tasks.py bot/reviewbot/tools/__init__.py bot/reviewbot/repositories.py extension/reviewbotext/integration.py bot/reviewbot/utils/filesystem.py bot/reviewbot/tools/buildbot.py bot/reviewbot/celery.py extension/reviewbotext/resources.py extension/reviewbotext/models.py bot/reviewbot/config.py
-
-
This is going to get big over time as we add support for more types. Let's split this up now, have a directory for repositories and a module for the base, another for git.
-
-
Is there any mechanism to send parameters using something akin to keyword arguments? Maybe send a dictionary across? I worry about expanding this down the road and introducing compatibility nightmares.