diff --git a/maintainers/scripts/check-maintainer-github-handles.sh b/maintainers/scripts/check-maintainer-github-handles.sh index 879a2e452cb..e389fde7d8a 100755 --- a/maintainers/scripts/check-maintainer-github-handles.sh +++ b/maintainers/scripts/check-maintainer-github-handles.sh @@ -6,61 +6,18 @@ set -e -# nixpkgs='' -# if [ -n "$1" ]; then - -function checkCommits { - local user="$1" - local tmp=$(mktemp) - curl --silent -w "%{http_code}" \ - "https://github.com/NixOS/nixpkgs/commits?author=$user" \ - > "$tmp" - # the last line of tmp contains the http status - local status=$(tail -n1 "$tmp") - local ret= - case $status in - 200) if <"$tmp" grep -i "no commits found" > /dev/null; then - ret=1 - else - ret=0 - fi - ;; - # because of github’s hard request limits, this can take some time - 429) sleep 2 - printf "." - checkCommits "$user" - ret=$? - ;; - *) printf "BAD STATUS: $(tail -n1 $tmp) for %s\n" "$user"; ret=1 - ret=1 - ;; - esac - rm "$tmp" - return $ret -} -export -f checkCommits - +# checks whether a user handle can be found on github function checkUser { local user="$1" local status= status="$(curl --silent --head "https://github.com/${user}" | grep Status)" - # checks whether a user handle can be found on github - if [[ "$status" =~ 404 ]]; then - printf "%s\t\t\t\t%s\n" "$status" "$user" - # checks whether the user handle has any nixpkgs commits - elif checkCommits "$user"; then - printf "OK!\t\t\t\t%s\n" "$user" - else - printf "No Commits!\t\t\t%s\n" "$user" - fi + printf "%s\t\t\t\t%s\n" "$status" "$user" } export -f checkUser # output the maintainers set as json # and filter out the github username of each maintainer (if it exists) -# then check some at the same time +# then check 100 at the same time nix-instantiate -A lib.maintainers --eval --strict --json \ - | jq -r '.[]|.github|select(.)' \ - | parallel -j5 checkUser - -# parallel -j100 checkUser ::: "eelco" "profpatsch" "Profpatsch" "a" + | jq -r '.[]|.github' \ + | parallel -j100 checkUser