diff --git a/actions/setup/action.yaml b/actions/setup/action.yaml index b41783f9..9df428c7 100644 --- a/actions/setup/action.yaml +++ b/actions/setup/action.yaml @@ -219,12 +219,13 @@ runs: # Install extra packages to to Packages/ PC_PACKAGES="" while read -r x; do - if [[ "$x" =~ ^(.*):(.*)/([^@]*)@?(.*)$ ]]; then + # The ref is everything after the first `@`, so that it can contain `/`, e.g. `feat/foo`. + if [[ "$x" =~ ^([^:/]+):([^/]+)/([^@]+)@?(.*)$ ]]; then PKG="${BASH_REMATCH[1]}" USER="${BASH_REMATCH[2]}" REPO="${BASH_REMATCH[3]}" SHA="${BASH_REMATCH[4]}" - elif [[ "$x" =~ ^(.*)/([^@]*)@?(.*)$ ]]; then + elif [[ "$x" =~ ^([^/]+)/([^@]+)@?(.*)$ ]]; then PKG="${BASH_REMATCH[2]}" USER="${BASH_REMATCH[1]}" REPO="${BASH_REMATCH[2]}"