如何在bash脚本中使用SSH从bitbucket下载文件?

时间:2018-04-12 18:52:17

标签: bash git curl ssh

在我的工作中, 下载自定义git预提交挂钩(来自bitbucket repo)的当前方法在bash脚本中使用curl,如下所示:

之前已分配$USERNAME$PASSWORD$build_support_url

...<some code>...    

# Download templates from http://swbuilds to home dir 
echo "Downloading pre-commit.pl hook"
curl -u $USERNAME:$PASSWORD --fail --show-error --silent --output ~/.git_template/hooks/pre-commit $build_support_url/pre-commit.pl
echo "Downloading prepare-commit-msg.py hook"
curl -u $USERNAME:$PASSWORD --fail --show-error --silent --output ~/.git_template/hooks/prepare-commit-msg $build_support_url/prepare-commit-msg.py
echo "Downloading commit-msg.py hook"
curl -u $USERNAME:$PASSWORD --fail --show-error --silent --output ~/.git_template/hooks/commit-msg $build_support_url/commit-msg.py

# Force the execute bit to be set 
chmod a+x  ~/.git_template/hooks/*

# Also download the customer list used by the pre-commit hook
echo "Downloading customer list"
curl -u $USERNAME:$PASSWORD --fail --show-error --silent --output ~/.git_template/customer_list.txt $build_support_url/customer_list.txt

# Configure Git templates
git config --global init.templatedir '~/.git_template'

...<some more code>...

这会从链接$build_support_url/pre-commit.pl下载预提交挂钩,并将它们放在~/.git_template文件夹中。 但是,由于此过程使用curlHTTPS,因此每次运行脚本时都需要输入密码。

为避免这种麻烦,我被告知要编辑脚本,以便使用SSH下载文件(不需要密码)。

有关如何在此脚本中使用SSH获取这些文件的任何建议? 感谢。

PS:我对后端和API有一个粗略的想法(并且只知道像GET和POST这样的基本HTTP请求。希望能给出更多的情况)。

2 个答案:

答案 0 :(得分:0)

您可以将凭据存储在~/.netrc文件中,以便curl将其用作explained here

答案 1 :(得分:0)

解决方案只是使用'git archive'命令而不是curl

相关问题