

















@@ -20,11 +20,11 @@ need() {
20202121date_utc_relative_months() {
2222local count="$1"
23-if date -u -v-"${count}"m +%Y-%m-%dT%H:%M:%SZ >/dev/null 2>&1; then
24- date -u -v-"${count}"m +%Y-%m-%dT%H:%M:%SZ
23+if date -u -v-"${count}"m +%Y-%m-%dT00:00:00Z >/dev/null 2>&1; then
24+ date -u -v-"${count}"m +%Y-%m-%dT00:00:00Z
2525return
2626fi
27- date -u -d "${count} months ago" +%Y-%m-%dT%H:%M:%SZ
27+ date -u -d "${count} months ago" +%Y-%m-%dT00:00:00Z
2828}
29293030date_to_epoch() {
@@ -49,20 +49,17 @@ rough_age() {
4949 awk -v days="$days" 'BEGIN { printf "~%.1fy old", days / 365.2425 }'
5050}
515152-count_threads() {
53-local kind="$1"
54-local login="$2"
55-local since_ts="$3"
56-local kind_filter
57-if [[ "$kind" == "prs" ]]; then
58- kind_filter='has("pull_request")'
59-else
60- kind_filter='has("pull_request") | not'
61-fi
52+thread_kinds() {
53+local login="$1"
54+local since_ts="$2"
6255 gh api --paginate "repos/${repo}/issues?state=all&creator=${login}&since=${since_ts}&per_page=100" \
63- --jq ".[] | select(.created_at >= \"${since_ts}\") | select(${kind_filter}) | .number" |
64- wc -l |
65- tr -d '[:space:]'
56+ --jq ".[] | select(.created_at >= \"${since_ts}\") | if has(\"pull_request\") then \"pr\" else \"issue\" end"
57+}
58+59+count_kind_lines() {
60+local kind="$1"
61+local lines="$2"
62+ grep -cx "$kind" <<<"$lines" 2>/dev/null || true
6663}
67646865count_commits() {
@@ -138,7 +135,7 @@ need gh
138135need jq
139136140137since_ts=$(date_utc_relative_months "$months")
141-now_ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)
138+now_ts=$(date -u +%Y-%m-%dT%H:00:00Z)
142139143140for login in "$@"; do
144141 profile=$(gh api "users/${login}" --jq '{login,name,created_at,type}')
@@ -148,8 +145,9 @@ for login in "$@"; do
148145 type=$(jq -r '.type' <<<"$profile")
149146 created_day=${created_at%%T*}
150147151- prs=$(count_threads prs "$display_login" "$since_ts")
152- issues=$(count_threads issues "$display_login" "$since_ts")
148+ kinds=$(thread_kinds "$display_login" "$since_ts")
149+ prs=$(count_kind_lines pr "$kinds")
150+ issues=$(count_kind_lines issue "$kinds")
153151 commits=$(count_commits "$display_login" "$since_ts")
154152155153if [[ -n "$name" ]]; then
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。