mirror of
https://code.forgejo.org/actions/cascading-pr
synced 2025-03-14 22:36:58 +01:00
add test for implicit creation of a fork in an organization
This commit is contained in:
parent
26490da8d2
commit
84c7b12c83
4 changed files with 72 additions and 5 deletions
|
@ -0,0 +1,26 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
name: test
|
||||
on:
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
- synchronize
|
||||
- closed
|
||||
jobs:
|
||||
test:
|
||||
runs-on: docker
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: SELF@vTest
|
||||
with:
|
||||
origin-url: ${{ env.GITHUB_SERVER_URL }}
|
||||
origin-repo: user1/origin-organization-fork-destination
|
||||
origin-token: ${{ secrets.ORIGIN_TOKEN }}
|
||||
origin-pr: ${{ github.event.pull_request.number }}
|
||||
destination-url: ${{ env.GITHUB_SERVER_URL }}
|
||||
destination-repo: user2/destinationrepo
|
||||
destination-fork-repo: destination-fork/destinationrepo
|
||||
destination-branch: main
|
||||
destination-token: ${{ secrets.DESTINATION_TOKEN }}
|
||||
update: ./upgraded
|
||||
debug: true
|
1
tests/origin-organization-fork-destination/README
Normal file
1
tests/origin-organization-fork-destination/README
Normal file
|
@ -0,0 +1 @@
|
|||
originrepo
|
14
tests/origin-organization-fork-destination/upgraded
Executable file
14
tests/origin-organization-fork-destination/upgraded
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
destination_checkout="$1"
|
||||
destination_pr_json="$2"
|
||||
origin_checkout="$3"
|
||||
origin_pr_json="$4"
|
||||
|
||||
test -d $destination_checkout
|
||||
test -d $origin_checkout
|
||||
test -f $origin_pr_json
|
||||
|
||||
date +%s > $destination_checkout/last
|
36
tests/run.sh
36
tests/run.sh
|
@ -33,7 +33,7 @@ function user_curl() {
|
|||
function user_token() {
|
||||
local username=$1 name=$2
|
||||
|
||||
curl -sS -f -H Content-Type:application/json --user "$username:${options[password]}" --data '{"name":"'$name'","scopes":["write:repository","write:issue","read:user"]}' ${options[url]}/api/v1/users/$username/tokens | jq --raw-output .sha1 | tee $TMPDIR/$username/repo-token
|
||||
curl -sS -f -H Content-Type:application/json --user "$username:${options[password]}" --data '{"name":"'$name'","scopes":["write:repository","write:issue","read:organization","read:user"]}' ${options[url]}/api/v1/users/$username/tokens | jq --raw-output .sha1 | tee $TMPDIR/$username/repo-token
|
||||
}
|
||||
|
||||
function user_secret() {
|
||||
|
@ -206,14 +206,14 @@ function fixture() {
|
|||
|
||||
orgs_delete
|
||||
|
||||
user_create user3 user3@example.com
|
||||
log_verbose create organization destination-fork
|
||||
user_curl user3 api_json --data '{"username":"destination-fork"}' ${options[url]}/api/v1/orgs
|
||||
|
||||
user_create user2 user2@example.com
|
||||
log_verbose push tests/${destination} repository to user2/${destination}
|
||||
forgejo-test-helper.sh push tests/${destination} http://user2:admin1234@${options[host_port]} user2 ${destination}
|
||||
|
||||
user_create user3 user3@example.com
|
||||
log_verbose create organization destination-fork
|
||||
user_curl user3 api_json --data '{"username":"destination-fork"}' ${options[url]}/api/v1/orgs
|
||||
|
||||
user_create user1 user1@example.com
|
||||
log_verbose push tests/${origin} repository to user1/${origin}
|
||||
forgejo-test-helper.sh push tests/${origin} http://user1:admin1234@${options[host_port]} user1 ${origin} cascading-pr
|
||||
|
@ -293,6 +293,32 @@ function create_in_destination_fork_and_close() {
|
|||
wait_success ${options[url]}/api/v1/repos/user1/origin-fork-destination $(cat $TMPDIR/user1-origin-fork-destination.sha)
|
||||
}
|
||||
|
||||
function create_in_existing_destination_fork_and_close() {
|
||||
fixture origin-organization-fork-destination destinationrepo
|
||||
user_secret user1 DESTINATION_TOKEN $(user_token user3 DESTINATION_TOKEN)
|
||||
log_verbose fork user2/destinationrepo to destination-fork/destinationrepo
|
||||
user_curl user3 api_json --data '{"organization":"destination-fork"}' ${options[url]}/api/v1/repos/user2/destinationrepo/forks
|
||||
|
||||
create_pull_request_case1 user1 user1 origin-organization-fork-destination
|
||||
|
||||
wait_success ${options[url]}/api/v1/repos/user1/origin-organization-fork-destination $(cat $TMPDIR/user1-origin-organization-fork-destination.sha)
|
||||
has_cascade_pull_request
|
||||
close_pull_request origin-organization-fork-destination
|
||||
wait_success ${options[url]}/api/v1/repos/user1/origin-organization-fork-destination $(cat $TMPDIR/user1-origin-organization-fork-destination.sha)
|
||||
}
|
||||
|
||||
function create_in_organization_destination_fork_and_close() {
|
||||
fixture origin-organization-fork-destination destinationrepo
|
||||
user_secret user1 DESTINATION_TOKEN $(user_token user3 DESTINATION_TOKEN)
|
||||
|
||||
create_pull_request_case1 user1 user1 origin-organization-fork-destination
|
||||
|
||||
wait_success ${options[url]}/api/v1/repos/user1/origin-organization-fork-destination $(cat $TMPDIR/user1-origin-organization-fork-destination.sha)
|
||||
has_cascade_pull_request
|
||||
close_pull_request origin-organization-fork-destination
|
||||
wait_success ${options[url]}/api/v1/repos/user1/origin-organization-fork-destination $(cat $TMPDIR/user1-origin-organization-fork-destination.sha)
|
||||
}
|
||||
|
||||
function create_and_merge_close() {
|
||||
fixture originrepo-close-merge destinationrepo
|
||||
user_secret user1 DESTINATION_TOKEN $(user_token user2 DESTINATION_TOKEN)
|
||||
|
|
Loading…
Add table
Reference in a new issue