我一直在阅读Travis CI文档关于API访问密钥的加密,他们建议使用他们的ruby gem。是否有其他方法可以做到这一点,以便我不必安装整个ruby环境并使用我的GitHub凭据登录?
如此处所述,公钥可以轻松下载。是否有可能使用openssl等工具,并获得与使用
如此处所述,公钥可以轻松下载。是否有可能使用openssl等工具,并获得与使用
travis encrypt
相同的结果?travis encrypt
相同的结果?#!/bin/bash
usage() { echo -e "Travis Encrypt Script\nUsage:\t$0 \n -r\t<username/repository> \n -e\t<string which should be encrypted>" 1>&2; exit 1; }
while getopts ":r:e:" param; do
case "${param}" in
r)
r=${OPTARG}
;;
e)
e=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND -1))
if [ -z "${r}" ] || [[ !(${r} =~ [[:alnum:]]/[[:alnum:]]) ]] || [ -z "${e}" ]; then
usage
fi
key_match="\"key\":\"([^\"]+)\""
key_url="https://api.travis-ci.org/repos/${r}/key"
request_result=$(curl --silent $key_url)
if [[ !($request_result =~ $key_match) ]]; then
echo "Couldn't retrieve key from ${key_url}. "
usage
fi
echo -n "${e}" | openssl rsautl -encrypt -pubin -inkey <(echo -e "${BASH_REMATCH[1]}") | openssl base64 -A
echo
travis
命令是基于Ruby的,所以你必须依赖Ruby,除非你能找到一个兼容的替代品。 - tadman