使用 REST / CLI 将秘密文件凭据上传到 Jenkins
Upload secret file credentials to Jenkins with REST / CLI
如何通过 REST API 或 Jenkins CLI 创建 Jenkins 凭证?凭据应为 "secret file" 类型,而不是用户名/密码组合。
问题与 this question 相似,但不相同或重复。
要通过 CLI 创建 Jenkins 凭据,您可以使用 create-credentials-by-xml
命令:
java -jar jenkins-cli.jar -s <JENKINS_URL> create-credentials-by-xml system::system::jenkins _ < credential-name.xml
了解此语法的最佳方法是手动创建凭据,然后转储它:
java -jar jenkins-cli.jar -s <JENKINS_URL> get-credentials-as-xml system::system::jenkins _ credential-name > credential-name.xml
然后你可以使用这个XML例子作为模板,它应该是不言自明的。
您可以按照以下方式进行:
curl -X POST \
https://jenkins.local/job/TEAM-FOLDER/credentials/store/folder/domain/_/createCredentials \
-F secret=@/Users/maksym/secret \
-F 'json={"": "4", "credentials": {"file": "secret", "id": "test",
"description": "HELLO-curl", "stapler-class":
"org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl",
"$class":
"org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl"}}'
如果您想更新现有的秘密文件,我发现最简单的方法是删除并重新创建。
一个删除请求,以扩展@lumaks 的回答(即具有相同的主机名、文件夹名称和凭据 ID),看起来像:
curl -v -X POST \
-u "user:password" \
https://jenkins.local/job/TEAM-FOLDER/credentials/store/folder/domain/_/credential/test/doDelete
这将 return HTTP 状态代码 302 Found
或 404 Not Found
分别用于现有和不存在的信用文件。
如何通过 REST API 或 Jenkins CLI 创建 Jenkins 凭证?凭据应为 "secret file" 类型,而不是用户名/密码组合。
问题与 this question 相似,但不相同或重复。
要通过 CLI 创建 Jenkins 凭据,您可以使用 create-credentials-by-xml
命令:
java -jar jenkins-cli.jar -s <JENKINS_URL> create-credentials-by-xml system::system::jenkins _ < credential-name.xml
了解此语法的最佳方法是手动创建凭据,然后转储它:
java -jar jenkins-cli.jar -s <JENKINS_URL> get-credentials-as-xml system::system::jenkins _ credential-name > credential-name.xml
然后你可以使用这个XML例子作为模板,它应该是不言自明的。
您可以按照以下方式进行:
curl -X POST \
https://jenkins.local/job/TEAM-FOLDER/credentials/store/folder/domain/_/createCredentials \
-F secret=@/Users/maksym/secret \
-F 'json={"": "4", "credentials": {"file": "secret", "id": "test",
"description": "HELLO-curl", "stapler-class":
"org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl",
"$class":
"org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl"}}'
如果您想更新现有的秘密文件,我发现最简单的方法是删除并重新创建。
一个删除请求,以扩展@lumaks 的回答(即具有相同的主机名、文件夹名称和凭据 ID),看起来像:
curl -v -X POST \
-u "user:password" \
https://jenkins.local/job/TEAM-FOLDER/credentials/store/folder/domain/_/credential/test/doDelete
这将 return HTTP 状态代码 302 Found
或 404 Not Found
分别用于现有和不存在的信用文件。