如何使用 bash 删除 docker 中的 GitLab 个人访问令牌?

How to delete a GitLab personal access token in docker using bash?

上下文

在能够使用 bash 添加 GitLab 个人访问令牌之后:

add_gitlab_personal_access_token(){
  local gitlab_username=""
  local token_name=""
  local personal_access_token=""
  local docker_container_id=""
  
  output="$(sudo docker exec -i "$docker_container_id" bash -c "gitlab-rails runner \"token = User.find_by_username('$gitlab_username').personal_access_tokens.create(scopes: [:api], name: '$token_name'); token.set_token('$personal_access_token'); token.save! \"")"
}

尝试我

使用 docker execbash -c 命令设置令牌允许撤销令牌:

revoke_token(){

    local docker_container_id=""
    local token="sometokenpersonalgitlabtoken"
    output="$(sudo docker exec -i "$docker_container_id" bash -c "gitlab-rails runner \"PersonalAccessToken.find_by_token('$token').revoke! \"")"
    echo "output=$output"
}

问题

但是再次尝试添加token后,还是在GitLab中,GitLab returns:

DETAIL:  Key (token_digest)=(somelongkeysasdfasdfasdfkeyending=) already exists.

所以 revoke 方法实际上并没有删除令牌,它只是撤销了它。

问题

我想知道如何:*如何使用 bash(基于 $token_name)删除 docker 容器中的 GitLab 个人令牌?

我认为这个问题的答案是:这是一个功能,而不是错误。我认为 re-use 令牌的安全做法很糟糕,所以改为为了尝试删除旧令牌,我编写了一个自动生成随机令牌的方法。

题中的revoke方法有效。已经通过检查 GitLab 个人访问令牌是否在 GitLab 浏览器中消失进行了手动验证。