Skip to content

Migration path for the change to require a repo resource for versions repo #1805

@dagood

Description

@dagood

When I saw this failure in the microsoft/go-images Publish stage when trying to upgrade:

/mnt/vss/_work/_temp/289fe1ea-058b-44fa-a948-b0fee38b4f65.sh: line 1: cd: /mnt/vss/_work/1/s/versions: No such file or directory

I tracked down:

Slight breaking change: All publishing pipelines which publish image info now need to specify a repo resource. That's the cost of avoiding rate limiting.

I started the process to mirror the Go versions repo into dnceng. But I think I misunderstood, and it's actually expected that the repo resource continues to point directly at the source of truth repo (GitHub) for synchronization purposes.

Is it true that we must point at the repo on GitHub, and set up whatever authorization is necessary to get that done?

Or: a line of questions come to mind, but maybe I'm missing something:

  • What happens if we do use the mirror, and there's mirror latency? (Might some amount of latency be acceptable?)
  • In what circumstances must the data be 100% up to date? (Maybe microsoft/go-images is simple enough that it doesn't actually matter for us in particular?)

And an alternative: could we use gitHubVersionsRepoInfo.authArgs to use the GitHub API to read/update this file, rather than using both git and the app? We already use it to publish, could it also help with reading the latest?

(Or: another app with less permission.)

Maybe this depends too much on the access being in dnceng/internal, while the repo reference is also needed in dnceng-public in some cases. For Go, we forgo the caching features in public CI, which I think means we don't use it but I'm not sure if this is the only case.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions