You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GitHub API移除仓库待处理邀请?含脚本实现需求

移除GitHub仓库待处理邀请的Bash脚本

脚本预期使用方式

./remove_pending_invite.sh <name_of_repo> <their_github_username>

实现思路与完整脚本

要移除待处理邀请,需先通过GitHub API获取对应用户的邀请ID(无法直接通过用户名删除),再调用删除接口。结合你的过期邀请处理需求,脚本会自动筛选创建时间超过7天的邀请进行移除。

完整脚本代码

#!/bin/bash

# 替换为你的组织/个人用户名
ORGANIZATION_NAME="your-org-name"

# 检查参数数量是否符合要求
if [ $# -ne 2 ]; then
    echo "用法: $0 <name_of_repo> <their_github_username>"
    exit 1
fi

REPO=$1
TARGET_USER=$2

# 计算7天前的UTC标准时间(用于筛选过期邀请)
SEVEN_DAYS_AGO=$(date -u -d "7 days ago" +"%Y-%m-%dT%H:%M:%SZ")

# 获取目标用户的过期待处理邀请ID
INVITATION_ID=$(gh api repos/$ORGANIZATION_NAME/$REPO/invitations \
    --jq ".[] | select(.login == \"$TARGET_USER\" and .created_at <= \"$SEVEN_DAYS_AGO\") | .id")

if [ -z "$INVITATION_ID" ]; then
    echo "未找到用户 $TARGET_USER 在仓库 $REPO 的过期(7天以上)待处理邀请"
    exit 0
fi

# 执行邀请移除操作
gh api -XDELETE repos/$ORGANIZATION_NAME/$REPO/invitations/$INVITATION_ID

if [ $? -eq 0 ]; then
    echo "成功移除用户 $TARGET_USER 在仓库 $REPO 的待处理邀请"
else
    echo "移除邀请失败,请检查权限或参数是否正确"
    exit 1
fi

使用前准备

  • 确保已通过gh auth login --with-token <github_token_here>完成GitHub CLI认证,token需拥有repo权限(组织仓库可能需要admin:org权限)
  • 替换脚本中的ORGANIZATION_NAME为你的实际组织名或个人用户名
  • 安装jq工具(用于JSON数据过滤,Linux可通过apt install jq,macOS可通过brew install jq安装)

关键步骤说明

  1. 参数校验:脚本启动时检查传入参数数量,确保符合使用要求
  2. 时间筛选:通过date命令生成7天前的UTC时间,配合jq过滤出超期邀请
  3. 获取邀请ID:调用GitHub API获取仓库待处理邀请列表,筛选目标用户的过期邀请ID
  4. 执行删除:调用DELETE接口移除对应ID的邀请,并返回操作结果

内容的提问来源于stack exchange,提问作者John Wickerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 08:25:06