curl 将GitHub团队添加到REPO中

nom7f22z  于 2023-10-19  发布在  Git
关注(0)|答案(2)|浏览(287)

我正在尝试执行一个Curl请求,以将一个团队添加到这样的repo中:

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

我的变量是正确的,但我一直得到一个消息没有找到错误。有人对如何进行有建议吗?

jk9hmnmh

jk9hmnmh1#

从这里开始的正确端点是:

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"

注意,本例中的JSON解析是使用jq完成的
还可以考虑在作用域admin:org中使用Personal access token,而不是您的用户名/密码(然后使用-H "Authorization: Token $TOKEN"

sy5wg1nm

sy5wg1nm2#

这个公认的答案现在已经有点过时了。
试试这里: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"}'

相关问题