renovatebot / renovate

Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
https://mend.io/renovate
GNU Affero General Public License v3.0
17.84k stars 2.36k forks source link

Ensure getPrList() results integrity mid-run #32040

Open rarkins opened 1 month ago

rarkins commented 1 month ago

Describe the proposed change(s).

It's important that platform.getPrList() returns an accurate list, particularly after PRs are created.

Check each platform to make sure that createPr() and updatePr() both mutate/update any saved PR lists for each platform.

rarkins commented 1 month ago

While looking into this, please also check on whether the PR list is cached reliably too.

RahulGautamSingh commented 1 month ago

Summarizing the tasks for this PR:

Platform Storage Details

Platform getPrList() Storage Location Updates Storage On: createPr() Updates Storage On: updatePr()
Azure local config
Bitbucket Cloud repo cache
Bitbucket Server local config
CodeCommit local config
Gerrit function not used
Gitea repo cache
Github local config & repo cache
Gitlab local config

Implementation Tasks

Primary Task

Optional Platforms

Consider implementation for:

Test Cases

For each platform, verify:

  1. PR Creation

    • [ ] Verify created PR appears in getPrList() immediately after creation
    • [ ] Verify created PR persists in getPrList() on subsequent runs -- if cache is used
  2. PR Updates

    • [ ] Verify bot-updated PR info appears in getPrList() after updatePr() call
    • [ ] Verify updated PR info persists in getPrList() on subsequent runs -- if cache is used
  3. External Updates -- if cache is used

    • [ ] Verify getPrList() reflects changes made via platform UI ie. cache.reconcile function is working as expected
rarkins commented 1 month ago

Code Commit can be skipped as it's deprecated. Gerritt also unless it's really quick. Ideally all platforms would update the PR cache correctly too