|
#!/bin/bash
|
|
|
|
# I don't know how to jq.
|
|
#
|
|
# The idea here is a rough guess at patches merged since start of the Wikimedia
|
|
# Hackathon 2024.
|
|
#
|
|
# References:
|
|
#
|
|
# - https://gerrit.wikimedia.org/r/q/status:merged+mergedafter:%222024-05-03+00:00:00+%252B0300%22,50
|
|
# - https://stackoverflow.com/questions/44497533/jq-transform-unix-timestamp-to-datetime
|
|
# - Pretty sure date results here will be UTC
|
|
|
|
# Get a list of patches since midnight May 3rd in Tallinn. This doesn't
|
|
# account for pagination, so check that if you run again. I think I used
|
|
# gerrit-query here instead of curling to the API so as not have to
|
|
# cross-reference numeric user IDs.
|
|
ssh -p 29418 gerrit.wikimedia.org gerrit query --format json --submit-records status:merged 'mergedafter:{2024-05-03 00:00:00 +0300}' > results.json
|
|
|
|
# Trim trailing line with summary:
|
|
sed -i '$ d' results.json
|
|
|
|
# Dates are unix timestamps - get human readable ones:
|
|
jq '.createdOn |= todateiso8601 | .lastUpdated |= todateiso8601' results.json > results_filtered.json
|
|
|
|
# Pull out relevant fields. Assumptions include that the submitter will be the
|
|
# first thing in submitRecords, which honestly I have no idea if that holds.
|
|
#
|
|
# There's also an @tsv available in jq, but on the version I was running it
|
|
# produces quoted strings per-row with \t escapes instead of an actual TSV,
|
|
# which is... Not actually TSV.
|
|
jq '[
|
|
.project,
|
|
.url,
|
|
.subject,
|
|
.owner.name,
|
|
.owner.email,
|
|
.submitRecords[0].labels[1].by.name,
|
|
.submitRecords[0].labels[1].by.email,
|
|
.createdOn,
|
|
.lastUpdated
|
|
] | @csv' \
|
|
results_filtered.json > results.csv
|