将Org中的GitHub团队添加到REPO中

时间:2017-04-19 14:04:17

标签: curl github github-api

我正在尝试将Curl请求添加到像这样的回购中:

curl --user $USERNAME:$TOKEN -X PUT -d "" "https://api.github.com/teams/<team name>/repos/<org>/$REPONAME"

我的变量是正确的,但我一直收到错误消息。有人建议如何继续吗?

2 个答案:

答案 0 :(得分:2)

来自here的正确终点是:

PUT /teams/:id/repos/:org/:repo

您必须指定团队ID而不是团队名称

以下内容将获取Developers小组的小组ID,并执行PUT请求以将repo添加到指定的小组:

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"

请注意,此示例使用jq

完成JSON解析

另请考虑使用范围为admin:org的{​​{3}}而不是您的用户名/密码(然后使用-H "Authorization: Token $TOKEN"

答案 1 :(得分:2)

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

试试这里: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"}'