我正在使用Gitea,并尝试在PowerShell中通过API调用创建用户:
这是我迄今为止尝试过的内容:API URL:https://try.gitea.io/api/swagger
API Token:3bb81a498393f4af3d278164b5755fc23b74b785
用户名:Will-stackoverflow
密码:willwill
# Filling my var with some data
$username="myuser"
$email="myuser@mydomain.com"
$full_name="My User"
$password="P@$$w0rd"
# Building a hash with my data
$hash = @{
Email = $($email);
full_name = $($full_name);
login_name = $($username);
Password = $($password);
send_notify = "false";
source_id = 0;
Username = $($username)
}
# Converting my hash to json format
$JSON = $hash | convertto-json
# Displaying my JSON var
$JSON
Invoke-WebRequest -uri "http://try.gitea.io/api/v1/admin/users?access_token=3bb81a498393f4af3d278164b5755fc23b74b785" -Method POST -Body $JSON
我的$JSON
变量已经正确传入:
{
"Password": "P@w0rd",
"full_name": "My User",
"Username": "myuser",
"Email": "myuser@mydomain.com",
"source_id": 0,
"login_name": "myuser",
"send_notify": "false"
}
但是这是我的生产环境中的结果(因为我无法在在线平台上使其完全工作):
对我来说,听起来像是需要填写“用户名”,“电子邮件”和“密码”字段,但它们在我的显示JSON中已经填写了。我错过了什么或做错了什么?
编辑:
按照Theo的建议,将-ContentType 'application/json'
参数添加到Invoke-WebRequest
命令中:
Invoke-WebRequest -H 'Authorization: token AUTH_TOKEN_HERE'
? - codewario"send_notify": "false"
更改为"send_notify": $false
。这样它就会接收布尔值而不是字符串"false"
。我已经编辑了我的答案。 - Theo