xref: /aosp_15_r20/external/grpc-grpc/tools/distrib/pull_requests_interval.sh (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker#!/bin/bash
2*cc02d7e2SAndroid Build Coastguard Worker# Copyright 2017 gRPC authors.
3*cc02d7e2SAndroid Build Coastguard Worker#
4*cc02d7e2SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
5*cc02d7e2SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
6*cc02d7e2SAndroid Build Coastguard Worker# You may obtain a copy of the License at
7*cc02d7e2SAndroid Build Coastguard Worker#
8*cc02d7e2SAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
9*cc02d7e2SAndroid Build Coastguard Worker#
10*cc02d7e2SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*cc02d7e2SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
12*cc02d7e2SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*cc02d7e2SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
14*cc02d7e2SAndroid Build Coastguard Worker# limitations under the License.
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Workerif [ "x$1" = "x" ] ; then
17*cc02d7e2SAndroid Build Coastguard Worker  echo "Usage: $0 <first ref> [second ref]"
18*cc02d7e2SAndroid Build Coastguard Worker  exit 1
19*cc02d7e2SAndroid Build Coastguard Workerelse
20*cc02d7e2SAndroid Build Coastguard Worker  first=$1
21*cc02d7e2SAndroid Build Coastguard Workerfi
22*cc02d7e2SAndroid Build Coastguard Worker
23*cc02d7e2SAndroid Build Coastguard Workerif [ -n $2 ] ; then
24*cc02d7e2SAndroid Build Coastguard Worker  second=HEAD
25*cc02d7e2SAndroid Build Coastguard Workerfi
26*cc02d7e2SAndroid Build Coastguard Worker
27*cc02d7e2SAndroid Build Coastguard Workerif [ -e ~/github-credentials.vars ] ; then
28*cc02d7e2SAndroid Build Coastguard Worker  . ~/github-credentials.vars
29*cc02d7e2SAndroid Build Coastguard Workerfi
30*cc02d7e2SAndroid Build Coastguard Worker
31*cc02d7e2SAndroid Build Coastguard Workerif [ "x$github_client_id" = "x" ] || [ "x$github_client_secret" = "x" ] ; then
32*cc02d7e2SAndroid Build Coastguard Worker  echo "Warning: you don't have github credentials set."
33*cc02d7e2SAndroid Build Coastguard Worker  echo
34*cc02d7e2SAndroid Build Coastguard Worker  echo "You may end up exceeding guest quota quickly."
35*cc02d7e2SAndroid Build Coastguard Worker  echo "You can create an application for yourself,"
36*cc02d7e2SAndroid Build Coastguard Worker  echo "and get its credentials. Go to"
37*cc02d7e2SAndroid Build Coastguard Worker  echo
38*cc02d7e2SAndroid Build Coastguard Worker  echo "  https://github.com/settings/developers"
39*cc02d7e2SAndroid Build Coastguard Worker  echo
40*cc02d7e2SAndroid Build Coastguard Worker  echo "and click 'Register a new application'."
41*cc02d7e2SAndroid Build Coastguard Worker  echo
42*cc02d7e2SAndroid Build Coastguard Worker  echo "From the application's information, copy/paste"
43*cc02d7e2SAndroid Build Coastguard Worker  echo "its Client ID and Client Secret, into the file"
44*cc02d7e2SAndroid Build Coastguard Worker  echo
45*cc02d7e2SAndroid Build Coastguard Worker  echo "  ~/github-credentials.vars"
46*cc02d7e2SAndroid Build Coastguard Worker  echo
47*cc02d7e2SAndroid Build Coastguard Worker  echo "with the following format:"
48*cc02d7e2SAndroid Build Coastguard Worker  echo
49*cc02d7e2SAndroid Build Coastguard Worker  echo "github_client_id=0123456789abcdef0123"
50*cc02d7e2SAndroid Build Coastguard Worker  echo "github_client_secret=0123456789abcdef0123456789abcdef"
51*cc02d7e2SAndroid Build Coastguard Worker  echo
52*cc02d7e2SAndroid Build Coastguard Worker  echo
53*cc02d7e2SAndroid Build Coastguard Worker  addendum=""
54*cc02d7e2SAndroid Build Coastguard Workerelse
55*cc02d7e2SAndroid Build Coastguard Worker  addendum="?client_id=$github_client_id&client_secret=$github_client_secret"
56*cc02d7e2SAndroid Build Coastguard Workerfi
57*cc02d7e2SAndroid Build Coastguard Worker
58*cc02d7e2SAndroid Build Coastguard Workerunset notfirst
59*cc02d7e2SAndroid Build Coastguard Workerecho "["
60*cc02d7e2SAndroid Build Coastguard Workergit log --pretty=oneline $1..$2 |
61*cc02d7e2SAndroid Build Coastguard Worker  grep '[^ ]\+ Merge pull request #[0-9]\{4,6\} ' |
62*cc02d7e2SAndroid Build Coastguard Worker  cut -f 2 -d# |
63*cc02d7e2SAndroid Build Coastguard Worker  cut -f 1 -d\  |
64*cc02d7e2SAndroid Build Coastguard Worker  sort -u |
65*cc02d7e2SAndroid Build Coastguard Worker  while read id ; do
66*cc02d7e2SAndroid Build Coastguard Worker    if [ "x$notfirst" = "x" ] ; then
67*cc02d7e2SAndroid Build Coastguard Worker      notfirst=true
68*cc02d7e2SAndroid Build Coastguard Worker    else
69*cc02d7e2SAndroid Build Coastguard Worker      echo ","
70*cc02d7e2SAndroid Build Coastguard Worker    fi
71*cc02d7e2SAndroid Build Coastguard Worker    echo -n "  {\"url\": \"https://github.com/grpc/grpc/pull/$id\","
72*cc02d7e2SAndroid Build Coastguard Worker    out=`mktemp`
73*cc02d7e2SAndroid Build Coastguard Worker    curl -s "https://api.github.com/repos/grpc/grpc/pulls/$id$addendum" > $out
74*cc02d7e2SAndroid Build Coastguard Worker    echo -n " "`grep '"title"' $out`
75*cc02d7e2SAndroid Build Coastguard Worker    echo -n " "`grep '"login"' $out | head -1`
76*cc02d7e2SAndroid Build Coastguard Worker    echo -n "  \"pr\": $id }"
77*cc02d7e2SAndroid Build Coastguard Worker    rm $out
78*cc02d7e2SAndroid Build Coastguard Worker  done
79*cc02d7e2SAndroid Build Coastguard Workerecho
80*cc02d7e2SAndroid Build Coastguard Workerecho "]"
81