diff options
author | isaacs <i@izs.me> | 2019-08-06 09:53:43 -0700 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-08-20 13:40:44 -0700 |
commit | f76903433f438db2822c40ba46451ccc3ec88fc2 (patch) | |
tree | 75cc8f7db61911ca39a75ccd0c1c1e16291a4a00 /deps/npm/scripts/pr | |
parent | edc83a9203c2a8d0fd219aac95fd1615e001c484 (diff) | |
download | android-node-v8-f76903433f438db2822c40ba46451ccc3ec88fc2.tar.gz android-node-v8-f76903433f438db2822c40ba46451ccc3ec88fc2.tar.bz2 android-node-v8-f76903433f438db2822c40ba46451ccc3ec88fc2.zip |
deps: update npm to 6.10.3
BUGFIXES
* [`27cccfbda`](https://github.com/npm/cli/commit/27cccfbdac8526cc807b07f416355949b1372a9b)
[#223](https://github.com/npm/cli/pull/223) vulns → vulnerabilities in
npm audit output ([@sapegin](https://github.com/sapegin))
* [`d5e865eb7`](https://github.com/npm/cli/commit/d5e865eb79329665a927cc2767b4395c03045dbb)
[#222](https://github.com/npm/cli/pull/222)
[#226](https://github.com/npm/cli/pull/226) install, doctor: don't crash
if registry unset ([@dmitrydvorkin](https://github.com/dmitrydvorkin),
[@isaacs](https://github.com/isaacs))
* [`5b3890226`](https://github.com/npm/cli/commit/5b389022652abeb0e1c278a152550eb95bc6c452)
[#227](https://github.com/npm/cli/pull/227)
[npm.community#9167](https://npm.community/t/npm-err-cb-never-called-permission-denied/9167/5)
Handle unhandledRejections, tell user what to do when encountering an
`EACCES` error in the cache. ([@isaacs](https://github.com/isaacs))
DEPENDENCIES
* [`77516df6e`](https://github.com/npm/cli/commit/77516df6eac94a6d7acb5e9ca06feaa0868d779b)
`licensee@7.0.3` ([@isaacs](https://github.com/isaacs))
* [`ceb993590`](https://github.com/npm/cli/commit/ceb993590e4e376a9a78264ce7bb4327fbbb37fe)
`query-string@6.8.2` ([@isaacs](https://github.com/isaacs))
* [`4050b9189`](https://github.com/npm/cli/commit/4050b91898c60e9b22998cf82b70b9b822de592a)
`hosted-git-info@2.8.2`
* [#46](https://github.com/npm/hosted-git-info/issues/46)
[#43](https://github.com/npm/hosted-git-info/issues/43)
[#47](https://github.com/npm/hosted-git-info/pull/47)
[#44](https://github.com/npm/hosted-git-info/pull/44) Add support for
GitLab subgroups ([@mterrel](https://github.com/mterrel),
[@isaacs](https://github.com/isaacs),
[@ybiquitous](https://github.com/ybiquitous))
* [`3b1d629`](https://github.com/npm/hosted-git-info/commit/3b1d629)
[#48](https://github.com/npm/hosted-git-info/issues/48) fix http
protocol using sshurl by default
([@fengmk2](https://github.com/fengmk2))
* [`5d4a8d7`](https://github.com/npm/hosted-git-info/commit/5d4a8d7)
ignore noCommittish on tarball url generation
([@isaacs](https://github.com/isaacs))
* [`1692435`](https://github.com/npm/hosted-git-info/commit/1692435)
use gist tarball url that works for anonymous gists
([@isaacs](https://github.com/isaacs))
* [`d5cf830`](https://github.com/npm/hosted-git-info/commit/d5cf8309be7af884032616c63ea302ce49dd321c)
Do not allow invalid gist urls ([@isaacs](https://github.com/isaacs))
* [`e518222`](https://github.com/npm/hosted-git-info/commit/e5182224351183ce619dd5ef00019ae700ed37b7)
Use LRU cache to prevent unbounded memory consumption
([@iarna](https://github.com/iarna))
PR-URL: https://github.com/nodejs/node/pull/29023
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/npm/scripts/pr')
-rwxr-xr-x | deps/npm/scripts/pr | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/deps/npm/scripts/pr b/deps/npm/scripts/pr new file mode 100755 index 0000000000..30a3b05ffe --- /dev/null +++ b/deps/npm/scripts/pr @@ -0,0 +1,167 @@ +#!/usr/bin/env bash + +# Land a pull request +# Creates a PR-### branch, pulls the commits, opens up an interactive rebase to +# squash, and then annotates the commit with the changelog goobers +# +# Usage: +# pr <url|number> [<upstream remote>=origin] + +main () { + if [ "$1" = "finish" ]; then + shift + finish "$@" + return $? + fi + + local url="$(prurl "$@")" + local num=$(basename $url) + local prpath="${url#git@github.com:}" + local repo=${prpath%/pull/$num} + local prweb="https://github.com/$prpath" + local root="$(prroot "$url")" + local api="https://api.github.com/repos/${repo}/pulls/${num}" + local user=$(curl -s $api | json user.login) + local ref="$(prref "$url" "$root")" + local curhead="$(git show --no-patch --pretty=%H HEAD)" + local curbranch="$(git rev-parse --abbrev-ref HEAD)" + local cleanlines + IFS=$'\n' cleanlines=($(git status -s -uno)) + if [ ${#cleanlines[@]} -ne 0 ]; then + echo "working dir not clean" >&2 + IFS=$'\n' echo "${cleanlines[@]}" >&2 + echo "aborting PR merge" >&2 + fi + + # ok, ready to rock + branch=PR-$num + if [ "$curbranch" == "$branch" ]; then + echo "already on $branch, you're on your own" >&2 + return 1 + fi + + me=$(git config github.user || git config user.name) + if [ "$me" == "" ]; then + echo "run 'git config --add github.user <username>'" >&2 + return 1 + fi + + exists=$(git show --no-patch --pretty=%H $branch 2>/dev/null) + if [ "$exists" == "" ]; then + git fetch origin pull/$num/head:$branch + git checkout $branch + else + git checkout $branch + git pull --rebase origin pull/$num/head + fi + + git rebase -i $curbranch # squash and test + + if [ $? -eq 0 ]; then + finish "${curbranch}" + else + echo "resolve conflicts and run: $0 finish "'"'${curbranch}'"' + fi +} + +# add the PR-URL to the last commit, after squashing +finish () { + if [ $# -eq 0 ]; then + echo "Usage: $0 finish <branch> (while on a PR-### branch)" >&2 + return 1 + fi + + local curbranch="$1" + local ref=$(cat .git/HEAD) + local prnum + case $ref in + "ref: refs/heads/PR-"*) + prnum=${ref#ref: refs/heads/PR-} + ;; + *) + echo "not on the PR-## branch any more!" >&2 + return 1 + ;; + esac + + local me=$(git config github.user || git config user.name) + if [ "$me" == "" ]; then + echo "run 'git config --add github.user <username>'" >&2 + return 1 + fi + + set -x + + local url="$(prurl "$prnum")" + local num=$prnum + local prpath="${url#git@github.com:}" + local repo=${prpath%/pull/$num} + local prweb="https://github.com/$prpath" + local root="$(prroot "$url")" + + local api="https://api.github.com/repos/${repo}/pulls/${num}" + local user=$(curl -s $api | json user.login) + + local lastmsg="$(git log -1 --pretty=%B)" + local newmsg="${lastmsg} + +PR-URL: ${prweb} +Credit: @${user} +Close: #${num} +Reviewed-by: @${me} +" + git commit --amend -m "$newmsg" + git checkout $curbranch + git merge PR-${prnum} --ff-only + set +x +} + + +prurl () { + local url="$1" + if [ "$url" == "" ] && type pbpaste &>/dev/null; then + url="$(pbpaste)" + fi + if [[ "$url" =~ ^[0-9]+$ ]]; then + local us="$2" + if [ "$us" == "" ]; then + us="origin" + fi + local num="$url" + local o="$(git config --get remote.${us}.url)" + url="${o}" + url="${url#(git:\/\/|https:\/\/)}" + url="${url#git@}" + url="${url#github.com[:\/]}" + url="${url%.git}" + url="https://github.com/${url}/pull/$num" + fi + url=${url%/commits} + url=${url%/files} + url="$(echo $url | perl -p -e 's/#issuecomment-[0-9]+$//g')" + + local p='^https:\/\/github.com\/[^\/]+\/[^\/]+\/pull\/[0-9]+$' + if ! [[ "$url" =~ $p ]]; then + echo "Usage:" + echo " $0 <pull req url>" + echo " $0 <pull req number> [<remote name>=origin]" + type pbpaste &>/dev/null && + echo "(will read url/id from clipboard if not specified)" + exit 1 + fi + url="${url/https:\/\/github\.com\//git@github.com:}" + echo "$url" +} + +prroot () { + local url="$1" + echo "${url/\/pull\/+([0-9])/}" +} + +prref () { + local url="$1" + local root="$2" + echo "refs${url:${#root}}/head" +} + +main "$@" |