label.sh 880 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. PRN=$1
  3. MSG=$2
  4. LABEL=$3
  5. function check_label() {
  6. local PRN=$1
  7. local LABEL=$2
  8. hub api repos/{owner}/{repo}/issues/${PRN}/labels | python -m json.tool | grep '"name": "'$LABEL'"'
  9. }
  10. function label() {
  11. local PRN=$1
  12. local MSG=$2
  13. local LABEL=$3
  14. for try in $(seq 3)
  15. do
  16. echo "Send $MSG ..."
  17. hub api repos/{owner}/{repo}/issues/$PRN/comments -f "body=$MSG" > /dev/null
  18. if [ "$?" -ne "0" ]; then
  19. echo "Send $MSG fail!"
  20. return 1
  21. fi
  22. for chk in $(seq 30)
  23. do
  24. sleep 1
  25. if check_label $PRN $LABEL > /dev/null; then
  26. echo "Label $LABEL success!"
  27. return 0
  28. fi
  29. done
  30. done
  31. return 1
  32. }
  33. if [ -z "$LABEL" ]; then
  34. echo "Usage: $0 <pr_number> <msg> <label>"
  35. exit 1
  36. fi
  37. label "$PRN" "$MSG" "$LABEL"