From 7b8a26e78680e0baedb32fc19b49bf75de4c678e Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Tue, 7 Feb 2023 12:41:55 +0000 Subject: add throwaway clone --- shell-scripts/azdo-throwaway-clone | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 shell-scripts/azdo-throwaway-clone (limited to 'shell-scripts') diff --git a/shell-scripts/azdo-throwaway-clone b/shell-scripts/azdo-throwaway-clone new file mode 100644 index 0000000..10a75da --- /dev/null +++ b/shell-scripts/azdo-throwaway-clone @@ -0,0 +1,38 @@ +#!@bash@/bin/bash +eval "$(pass show work/shell-scripts/secrets)" + +LIST_PROJECTS="/_apis/projects?api-version=7.1-preview.4" +AUTH_HEADER="Authorization: Basic $WORK_AZDO_GIT_AUTH" +LIST_REPOSITORIES="/_apis/git/repositories?api-version=7.1-preview.1" +DIR_THROWAWAY_REPOS="$HOME/ephemeral-projects/" +MAX_REPOS=20 + +COUNT=$(find "$DIR_THROWAWAY_REPOS" -mindepth 1 -maxdepth 1 -type d | wc -l) +if [ "$COUNT" -gt "$MAX_REPOS" ] +then + STALE=$(( COUNT - MAX_REPOS )) + OLDEST=$(find "$DIR_THROWAWAY_REPOS" -mindepth 1 -maxdepth 1 -type d -printf '%T@ %p\n' 2>/dev/null \ + | sort -n | head -n$STALE | cut -d' ' -f2) + + for dir in $OLDEST + do + rm -i -r $dir + done +fi + + +curl -s -H "$AUTH_HEADER" $WORK_AZDO_GIT_ORG_URL$LIST_PROJECTS \ +| jq ' +.value[].name +' \ +| xargs -I{} bash -c " +curl -s -H '$AUTH_HEADER' $WORK_AZDO_GIT_ORG_URL/{}$LIST_REPOSITORIES \ +| jq ' +.value[].name +' \ +| awk '{ gsub(/\"/, \"\", \$1); printf \"{}/_git/%s\\n\", \$1 }' +" \ +| fzf \ +| xargs -I{} bash -c " +git clone $WORK_AZDO_GIT_ORG_URL/{} \"$DIR_THROWAWAY_REPOS\$(echo '{}' | cut -d '/' -f3)\" +" -- cgit v1.2.3