[roll] Roll infra/recipes [gds] Only consider same-branch changes

Change-Id footers are only guaranteed to be unique per each
(repo, branch) combination. It's unusual to have the same Change-Id on
changes in different repositories, but it's common to have a Change-Id
appear on multiple branches, since cherry-picking via the Gerrit UI
preserves the Change-Id.

Therefore, we should make sure to handle the case where there are
multiple changes with the same Change-Id, and only consider changes on
the same branch.

The Gerrit API's change details endpoint doesn't support looking up a CL
by (branch, change-id) combination - only by change-id alone, or by
(repo, branch, change-id):
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-id
But Depends-on footers intentionally don't require repo names, so we
can't know the repo name until we actually do an API query.

Therefore, I switched the change details call to a change query call
that supports querying by change ID and branch. As a bonus, this lets us
handle nonexistent changes (empty query results) separately from other
types of query failures.

Original-Bug: 407541733
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/infra/recipes/+/1255524
Original-Revision: 24fd6d82eb7a98dbc64f4a16df7f3d5fdd5fe4d8
GitOrigin-RevId: fe29b619cc88f6be02b49672e114ac9375d3e526
Change-Id: I8b6be6fa08e8d610a8831deda79efa942d999161
1 file changed
tree: 52145558c18c63941f965f82edbc9327ddff4b17
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.