Advertisement
Guest User

Untitled

a guest
Dec 30th, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.29 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. TOKEN=GITLAB_ACCESS_TOKEN
  4.  
  5. function url_to_namespaced_path_encoded {
  6.     url=$1
  7.     if [[ ${url} == git@* ]]; then
  8.         # ssh clone url. remove server path
  9.         url=${url#*:}
  10.     else
  11.         # http[s] clone url. remove server path
  12.         url=${url#*//}
  13.         url=${url#*/}
  14.     fi
  15.     # remove .git from end
  16.     url=${url%.git}
  17.     # replace / with %2F
  18.     url=${url//'/'/"%2F"}
  19.     echo ${url}
  20. }
  21.  
  22. function url_to_hostname {
  23.     url=$1
  24.     if [[ ${url} == git@* ]]; then
  25.         # ssh clone url. remove server path
  26.         url=${url:4}
  27.         url=${url%%:*}
  28.     else
  29.         # http[s] clone url. remove server path
  30.         url=${url#*//}
  31.         url=${url%%/*}
  32.     fi
  33.     echo ${url}
  34. }
  35.  
  36. TODOS=$(git diff --cached --diff-filter=d -U0 | grep -e "^+.*TODO")
  37.  
  38. remoteURL=$(git remote get-url origin)
  39. remotePath=$(url_to_namespaced_path_encoded ${remoteURL})
  40. hostname=$(url_to_hostname ${remoteURL})
  41.  
  42. if [ "${TODOS}" != "" ]; then
  43.     # for line in variable
  44.     while IFS= read -r line; do
  45.         # remove TODO and text before it.
  46.         text=${line#*TODO}
  47.         curl --request POST --header "PRIVATE-TOKEN: ${TOKEN}" --data-urlencode "title=${text}" https://${hostname}/api/v4/projects/${remotePath}/issues >/dev/null
  48.     done <<< "${TODOS}"
  49. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement