* Add management task for fetching github commits based on repository fixes and
2 tables for storing that data
* Add changelog web api
* Add tests
* Refactor Github utilities into one file and move http utilities from common.py to new file
`isort` as part of the pre-commit set up ends up under `$HOME/.cache/pre-commit`.
Due to that, it was unable to determine the path to the `setup.cfg` and was
unable to differentiate third party libraries from first party libraries.
Specifiying where the path to the default virtualenv is fixes it.
Git based projects can list pushes in the UI incorrectly. This can be caused by commits having been ammended on a PR or merges of old commits.
Using the committer's date (the date when the PR gets merged) instead of the author's date to determine push time fixes the sorting problem.
This change also includes:
* Support for manual ingestion of Git pushes
* Support for ingesting the latest commits for a repo
* Script to compare pushes between Treeherder instances
## Script to compare pushes between Treeherder instances
`compare_pushes.py` compares the last 50 pushes of various projects for different Treeherder instances. The output generates links to each instance and revision to visually compare.
```console
% ./misc/compare_pushes.py --projects android-components,fenix,reference-browser,servo-master,servo-auto,servo-try
Comparing android-components against production.
Comparing fenix against production.
Comparing reference-browser against production.
{"values_changed": {"root['push_timestamp']": {"new_value": 1582580346, "old_value": 1582581477}}}
https://treeherder.allizom.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4ehttps://treeherder.mozilla.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4e
Comparing servo-master against production.
Comparing servo-auto against production.
Comparing servo-try against production.
```
For test path filtering the artifact is quite large (over 1MB) but the
compressed version is much smaller (~90KB).
This change will try to first download the compressed file and then
attempt the uncompressed version as a fallback.
Changes:
* Standardize task label to test type conversion with `convert_job_type_name_to_testtype`.
* Support additional job types `source-test`, `iris`, and `web-render`.
* Fix `JobPriority` query to use converted testtype instead of task label.
This increases the chances of not having a Heroku build fail and catch it in Travis instead.
It also cleans up a bit the file and removes incorrect usage of `env` values.
Renamed `compare_pushes.py` to `compare_tasks.py` since it is more appropiate.
`compare_pushes.py` compares the last 50 pushes of various projects for different Treeherder instances.
The output generates links to each instance and revision to visually compare.
```console
% ./misc/compare_pushes.py --projects android-components,fenix,reference-browser,servo-master,servo-auto,servo-try
Comparing android-components against production.
Comparing fenix against production.
Comparing reference-browser against production.
{"values_changed": {"root['push_timestamp']": {"new_value": 1582580346, "old_value": 1582581477}}}
https://treeherder.allizom.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4ehttps://treeherder.mozilla.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4e
Comparing servo-master against production.
Comparing servo-auto against production.
Comparing servo-try against production.
```
* Bug 1616311 - Fix when a key starts with a numeral
We use this as an `id` or query selector at times. So it must
start with a character.
* Bug 1616311 - Pass the correct revision to CommitHistory
We were passing the revision of the parent, not the current revision
for which we are showing the RevisionList
* Bug 1616311 - Add ability to copy test group name to clipboard