我尝试编写将我的扩展程序发布到所有商店的脚本,使用Chrome完成但仍然使用Firefox。我被this documentation引导。我可以通过网页上传到Mozilla商店。我知道我可以使用现有的cli,但我不想引入无用的依赖项。 jwt.io显示绿灯。
我的代码:
AMO_JWT_ISSUER=user:132XXXXX:XXX
AMO_SECRET=503084ad4069208a1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
JWT_HEADER_BASE64=`printf %s '{"alg": "HS256", "typ": "JWT"}' | base64`
random() {
dd if=/dev/urandom bs=20 count=1 2>/dev/null | openssl sha1
}
UNIXTIME=`date +%s`
PAYLOAD_JSON=$(python3 - <<EOF
import json
print(
json.dumps({
'iss': "${AMO_JWT_ISSUER}",
'jti': "$(random)",
'iat': $UNIXTIME,
'exp': $(($UNIXTIME+99))
})
)
EOF
)
JWT_PAYLOAD_BASE64=`printf %s $PAYLOAD_JSON | base64`
FOR_SIGN="$JWT_HEADER_BASE64.$JWT_PAYLOAD_BASE64"
JWT_SIGNATURE_BASE64=`printf %s $FOR_SIGN | openssl dgst -binary -sha256 -hmac $AMO_SECRET | base64`
JWT=$JWT_HEADER_BASE64.$JWT_PAYLOAD_BASE64.$JWT_SIGNATURE_BASE64
curl "https://addons.mozilla.org/api/v3/addons/" \
--form "upload=@$FIREFOX_FILEPATH_PROD" \
--form "version=$VERSION" \
-H "Authorization: JWT $JWT" \
-v