检查shell脚本中的Bitbucket登录凭据

时间:2017-08-07 12:02:07

标签: git bash shell terminal

我目前正在编写一个shell / bash脚本来自动化工作流程。这个bash脚本可以克隆项目并在Bitbucket上创建新的repo,做作曲家安装/更新等等。

我的第一个计划是在整个SSH上执行此操作,但在某些情况下我需要HTTPS。因为所有人都认为通过HTTPS,我需要首先检查Bitbucket的用户凭据。凭证由用户名和密码组成。

这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

正如您在评论中所建议的那样,curl可以为您执行HTTP Basic Auth。对于BitBucket,响应将为401 Unauthorized200 OK,具体取决于用户名/密码对的有效性。您可以使用grep测试输出(或仅限标题),但使用-w/--write-out选项并结合HEAD请求和{{1}更加强大的方法ilenced输出:

-s

然后,要测试状态,可以使用简单的条件表达式:

http_status=$(curl -X HEAD -s -w '%{http_code}' \
              -u "username:password" -H "Content-Type: application/json" \
              https://api.bitbucket.org/2.0/repositories/$repo_owner)

或者,如果您计划测试多个状态代码,则可以使用if [[ $http_status == 200 ]]; then echo "Credentials valid" else if [[ $http_status == 401 ]]; then echo "Credentials INVALID" else echo "Unexpected HTTP status code: $http_status" fi fi 命令,例如:

case