- Add a test case specifically verifying that `Gitea.SetLabels`
is called with `staging/Auto` when a *new* project PR is created
for submodules.
- Verify `PrjGitDescription` and `SetSubmodulesToMatchPRSet` behave
correctly when a single `PRSet` contains 5+ different package
repositories.
Also,
- Add simple unit tests to verify mapping of `models.StateType`
to internal event strings.
- Verify it correctly wraps `ProcesPullRequest` and handles panics
via the deferred recovery block.
- Add tests for scenarios where `GetRecentPullRequests` fails.
- Verify the random sleep interval logic (can be tested by mocking
`time.Sleep` if refactored, or verifying behavior with interval=0).
- PullRequestWebhookEvent: Verified that PR events correctly
trigger processing with all necessary Gitea and Git mocks.
- IssueCommentWebhookEvent: Verified that issue comment events
(which Gitea often uses for PR comments) are handled correctly.
- Recursion Limit: Verified that the recursion protection logic
correctly terminates and cleans up when the limit is reached.
- Invalid Data Format: Verified that non-event data types return
appropriate errors.
- Add scenarios for closed/merged project PRs that trigger
submodule checks and downstream PR updates (manual merge vs close).
- Test the "Consistency check" logic where submodules are reset
if they don't match the PR set.
- Test the "superfluous PR" check (no-op PRs that should be closed).
In previous fix attempt, there were changes to process IssueComments
but PRComments are their instance of IssueComments distinct from
IssueComments webhook events
Fixes: a418b48809
If we are updating a Project Git PR, we need to save the updated
hash or we may be lookign at pre-update PR for various operations,
including merging.
This mostly only affects project gits in devel projects where
the project git could be updated by direct workflow bot, but then
the project is incorrectly resulting in no package update.
in case where files are not in lfs but should be, the checkout
causes files to be modified. Then the checkout of the PR.Head fails.
There should be better way of dealing with this