use*_*182 7 curl github github-api
我正在尝试执行 Curl 请求以将团队添加到存储库,如下所示:
curl --user $USERNAME:$TOKEN -X PUT -d "" "https://api.github.com/teams/<team name>/repos/<org>/$REPONAME"
Run Code Online (Sandbox Code Playgroud)
我的变量是正确的,但我不断收到一条消息未找到错误。有人对如何进行有建议吗?
接受的答案现在有点过时了。
在这里尝试:https ://docs.github.com/en/rest/reference/teams#add-or-update-team-repository-permissions
put /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}
curl \
-X PUT \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token ......." \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/repos/ORG/REPO \
-d '{"permission":"permission"}'
Run Code Online (Sandbox Code Playgroud)
这里正确的端点是:
PUT /teams/:id/repos/:org/:repo
Run Code Online (Sandbox Code Playgroud)
您必须指定团队 ID,而不是团队名称
以下将获取团队的团队 IDDevelopers并执行PUT将存储库添加到指定团队的请求:
username=your_user
password=your_password
org=your_org
repo=your_repo
team=Developers
teamid=$(curl -s --user $username:$password "https://api.github.com/orgs/$org/teams" | \
jq --arg team "$team" '.[] | select(.name==$team) | .id')
curl -v --user $username:$password -d "" -X PUT "https://api.github.com/teams/$teamid/repos/$org/$repo"
Run Code Online (Sandbox Code Playgroud)
注意此示例 JSON 解析是通过jq
还可以考虑使用带有范围的个人访问令牌admin:org而不是您的用户名/密码(然后使用-H "Authorization: Token $TOKEN")