22set -euo pipefail
33
44# ##
5- # # GLOBAL VARIABLES
5+ # GLOBAL VARIABLES
66# ##
77GITHUB_TOKEN=${GITHUB_TOKEN:- ' ' }
88ORG=${ORG:- ' ' }
@@ -17,6 +17,30 @@ if [ -z "${GITHUB_TOKEN}" ]; then
1717 exit 1
1818fi
1919
20+ # Check if ORG is set
21+ if [ -z " ${ORG} " ]; then
22+ echo " ORG is empty. Please set your organization and try again"
23+ exit 1
24+ fi
25+
26+ # Check if REPO is set
27+ if [ -z " ${REPO} " ]; then
28+ echo " REPO is empty. Please set your repository and try again"
29+ exit 1
30+ fi
31+
32+ # Check if MONTH_START is set
33+ if [ -z " ${MONTH_START} " ]; then
34+ echo " MONTH_START is empty. Please set your start date (YYYY-MM-DD) and try again"
35+ exit 1
36+ fi
37+
38+ # Check if MONTH_END is set
39+ if [ -z " ${MONTH_END} " ]; then
40+ echo " MONTH_END is empty. Please set your end date (YYYY-MM-DD) and try again"
41+ exit 1
42+ fi
43+
2044# Validate GITHUB_TOKEN by calling GitHub API
2145RESPONSE=$( curl -s -o /dev/null -w " %{http_code}" -H " Authorization: token ${GITHUB_TOKEN} " " ${API_URL_PREFIX} /user" )
2246
@@ -26,7 +50,7 @@ if [ "${RESPONSE}" -ne 200 ]; then
2650fi
2751
2852get_public_pagination () {
29- public_pages=$( curl -H " Authorization: token ${GITHUB_TOKEN} " -I " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues?state=all&labels=Linked%20[AC]&per_page=100" | grep -Eo ' &page=[0-9]+' | grep -Eo ' [0-9]+' | tail -1; )
53+ public_pages=$( curl -s - H " Authorization: token ${GITHUB_TOKEN} " -I " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues?state=all&labels=Linked%20[AC]&per_page=100" | grep -Eo ' &page=[0-9]+' | grep -Eo ' [0-9]+' | tail -1; )
3054 echo " ${public_pages:- 1} "
3155}
3256
@@ -36,9 +60,9 @@ limit_public_pagination () {
3660
3761repo_issues () {
3862 for PAGE in $( limit_public_pagination) ; do
39- for i in $( curl -H " Authorization: token ${GITHUB_TOKEN} " -s " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues?state=all&labels=Linked%20[AC]&page=${PAGE} &per_page=100" | jq -r ' map(select(.created_at | . >= "' " ${MONTH_START} " ' T00:00" and . <= "' " ${MONTH_END} " ' T23:59")) | sort_by(.number) | .[] | .number' ) ; do
40- ISSUE_PAYLOAD=$( curl -H " Authorization: token ${GITHUB_TOKEN} " -s " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues/${i} " -H " Accept: application/vnd.github.mercy-preview+json" )
41- ISSUE_TIMELINE_PAYLOAD=$( curl -H " Authorization: token ${GITHUB_TOKEN} " -s " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues/${i} /timeline" -H " Accept: application/vnd.github.mockingbird-preview+json" | jq -r ' .[] | select(.label.name=="Linked [AC]" or .label.name=="linked")' )
63+ for i in $( curl -s - H " Authorization: token ${GITHUB_TOKEN} " " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues?state=all&labels=Linked%20[AC]&page=${PAGE} &per_page=100" | jq -r ' map(select(.created_at | . >= "' " ${MONTH_START} " ' T00:00" and . <= "' " ${MONTH_END} " ' T23:59")) | sort_by(.number) | .[] | .number' ) ; do
64+ ISSUE_PAYLOAD=$( curl -s - H " Authorization: token ${GITHUB_TOKEN} " " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues/${i} " -H " Accept: application/vnd.github.mercy-preview+json" )
65+ ISSUE_TIMELINE_PAYLOAD=$( curl -s - H " Authorization: token ${GITHUB_TOKEN} " " ${API_URL_PREFIX} /repos/${ORG} /${REPO} /issues/${i} /timeline" -H " Accept: application/vnd.github.mockingbird-preview+json" | jq -r ' .[] | select(.label.name=="Linked [AC]" or .label.name=="linked")' )
4266
4367 ISSUE_AUTHOR=$( echo " ${ISSUE_PAYLOAD} " | jq -r .user.login)
4468 ISSUE_TITLE=$( echo " ${ISSUE_PAYLOAD} " | jq -r .title | tr ' "' " '" )
0 commit comments