validate_artifactory_git_lfs

23rd February 2017 at 5:35pm
Artifactory Bash CodeSnippets Git GitLFS

bin/validate_artifactory_git_lfs

#!/bin/bash
# vim:ts=2:sw=2:tw=79

set -euo pipefail
shopt -s extglob
shopt -s nocasematch

main () {
  local lfs_url="$(git config --get lfs.url)"

  if [[ "$lfs_url" =~ ://([^:/].+):([0-9]+)/(.*) ]] ; then
    local ssh_host="${BASH_REMATCH[1]}"
    local ssh_port="${BASH_REMATCH[2]}"
    local repo_path="${BASH_REMATCH[3]}"
    local results="$(ssh -p "$ssh_port" "$ssh_host" \
      git-lfs-authenticate "$repo_path" download 0abcd)"

    if [[ "$results" = '{"header":{"Authorization":"Bearer'* ]] ; then
      >&2 echo "$results"
      echo "Authentication with Artifactory was successful."
      return 0

    else
      >&2 echo "Authentication with Artifactory was not successful."
      return 1
    fi

  else
    >&2 echo "Unable to parse lfs.url string '$lfs_url'."
    return 2
  fi
}

main "$@"