以下代码是Jenkins中的"Execute Shell"构建步骤.该作业来自包含文件的仓库ranger-policies/policies.json.我想要做的是更新该文件(在这种情况下使用curl命令),然后将更改提交到源代码控制并更新远程仓库.通过SSH使用SSH密钥,作业配置页面的"源代码管理"部分中的远程仓库成功提取作业.但是,当作业到达"执行Shell"步骤中的"git push origin master"行时,我收到一个Permission denied (publickey)错误,好像那些允许我成功提取回购的相同SSH密钥在"执行Shell"中不可用"我想要推动的一步.
curl -X GET --header "text/json" -H "Content-Type: text/json" -u user:pass "http://my-url.com/exportJson" > ranger-policies/policies.json
git add ranger-policies/policies.json
git commit -m "udpate policies.json with latest ranger policies `echo "$(date +'%Y-%m-%d')"`"
git push origin master
Run Code Online (Sandbox Code Playgroud) 我想做的是指定有时对 API 调用的响应可能是 PDF 文档,有时是 JSON。我想以 OpenAPI 3.0 格式执行此操作。对于 PDF,响应将如下所示:
responses:
'200':
description: An invoice in PDF format.
content:
application/pdf:
schema:
type: string
format: binary
Run Code Online (Sandbox Code Playgroud)
在 JSON 响应的情况下,这将描述响应:
responses:
'200':
description: A JSON object containing user name and avatar
content:
application/json:
schema:
$ref: "#/components/schemas/Invoice"
Run Code Online (Sandbox Code Playgroud)
OAS3 文档 ( https://swagger.io/docs/specification/describing-responses/ ) 提供了以下示例,说明如何指定几种不同的 JSON 模式之一可以是对特定 API 调用的响应。这几乎就是我想要的,除了描述不同的可能的 JSON 模式之外,我想指定不同的可能的内容类型,如上所述。有没有办法以 OAS3 格式执行此操作?
responses:
'200':
description: A JSON object containing pet information
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Cat'
- $ref: '#/components/schemas/Dog'
- $ref: '#/components/schemas/Hamster'
Run Code Online (Sandbox Code Playgroud)