mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-20 06:06:06 +00:00
2d10d3685f
Run the E2E test on kind / setup-test-matrix (push) Successful in 4s
e2e-test-kind.yaml / extract (push) Failing after 5s
Run the E2E test on kind / get-go-version (push) Failing after 6s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 5s
Main CI / get-go-version (push) Failing after 6s
Main CI / Build (push) Skipped
Bumps the github-actions group with 4 updates: [actions/github-script](https://github.com/actions/github-script), [actions/cache](https://github.com/actions/cache), [jpmcb/prow-github-actions](https://github.com/jpmcb/prow-github-actions) and [actions/stale](https://github.com/actions/stale). Updates `actions/github-script` from 7 to 9 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v9) Updates `actions/cache` from 4 to 6 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v6) Updates `jpmcb/prow-github-actions` from 1.1.3 to 2.0.0 - [Release notes](https://github.com/jpmcb/prow-github-actions/releases) - [Commits](https://github.com/jpmcb/prow-github-actions/compare/f4d01dd4b13f289014c23fe5a19878a2479cb35b...c44ac3a57d67639e39e4a4988b52049ef45b80dd) Updates `actions/stale` from 10.1.1 to 11.0.0 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v10.1.1...v11.0.0) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: jpmcb/prow-github-actions dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: actions/stale dependency-version: 11.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
90 lines
3.4 KiB
YAML
90 lines
3.4 KiB
YAML
---
|
|
name: "Auto Assign Author"
|
|
|
|
# pull_request_target means that this will run on pull requests, but in
|
|
# the context of the base repo. This should mean PRs from forks are supported.
|
|
on:
|
|
pull_request_target:
|
|
types: [opened, reopened, ready_for_review]
|
|
# Watch for submitted reviews so we can re-request a second CODEOWNERS
|
|
# review once only one maintainer has approved.
|
|
pull_request_review:
|
|
types: [submitted]
|
|
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
# Automatically assigns reviewers and owner
|
|
add-reviews:
|
|
if: github.repository == 'velero-io/velero' && github.event_name == 'pull_request_target'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Set the author of a PR as the assignee
|
|
uses: kentaro-m/auto-assign-action@v2.0.2
|
|
with:
|
|
configuration-path: ".github/auto-assignees.yml"
|
|
|
|
# `.github/CODEOWNERS` automatically requests review from the
|
|
# velero-io/maintainer team, but that request is cleared as soon as a
|
|
# single member of the team submits a review. Since we require a minimum
|
|
# of 2 reviewers (see `number_of_reviewers` in auto-assignees.yml), this
|
|
# re-requests a review from the maintainer team whenever a PR still has
|
|
# fewer than the required number of approvals, so a second CODEOWNERS
|
|
# reviewer gets pinged.
|
|
re-request-review:
|
|
if: github.repository == 'velero-io/velero' && github.event_name == 'pull_request_review' && github.event.review.state == 'approved'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Re-request review from maintainers if more approvals are needed
|
|
uses: actions/github-script@v9
|
|
with:
|
|
script: |
|
|
const requiredApprovals = 2;
|
|
const maintainerTeam = 'maintainer';
|
|
const { owner, repo } = context.repo;
|
|
const pull_number = context.payload.pull_request.number;
|
|
|
|
const { data: reviews } = await github.rest.pulls.listReviews({
|
|
owner,
|
|
repo,
|
|
pull_number,
|
|
});
|
|
|
|
// Count distinct users whose most recent review is an approval.
|
|
// The Reviews API does not guarantee chronological order, so
|
|
// sort by submission time before folding into the map.
|
|
const sortedReviews = [...reviews].sort(
|
|
(a, b) => new Date(a.submitted_at) - new Date(b.submitted_at)
|
|
);
|
|
const latestReviewByUser = new Map();
|
|
for (const review of sortedReviews) {
|
|
latestReviewByUser.set(review.user.login, review.state);
|
|
}
|
|
const approvedReviewers = [...latestReviewByUser.entries()].filter(
|
|
([, state]) => state === 'APPROVED'
|
|
);
|
|
|
|
if (approvedReviewers.length >= requiredApprovals) {
|
|
console.log(
|
|
`PR already has ${approvedReviewers.length} approvals, no need to re-request review.`
|
|
);
|
|
return;
|
|
}
|
|
|
|
console.log(
|
|
`PR has ${approvedReviewers.length}/${requiredApprovals} approvals, re-requesting review from @${owner}/${maintainerTeam}.`
|
|
);
|
|
|
|
try {
|
|
await github.rest.pulls.requestReviewers({
|
|
owner,
|
|
repo,
|
|
pull_number,
|
|
team_reviewers: [maintainerTeam],
|
|
});
|
|
} catch (error) {
|
|
core.warning(`Failed to re-request review from maintainers: ${error.message}`);
|
|
}
|