将组织中的 GitHub 团队添加到 REPO

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)

我的变量是正确的,但我不断收到一条消息未找到错误。有人对如何进行有建议吗?

Dam*_*amo 8

接受的答案现在有点过时了。

在这里尝试: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)


Ber*_*tel 7

这里正确的端点是:

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"