【问题标题】:How to obtain github "short" username at the command line?如何在命令行获取 github“短”用户名?
【发布时间】:2012-09-23 21:47:51
【问题描述】:

如果..

$ git config user.name
↳ Alex Gray              # OK (my name)
$ git config user.email
↳ alex@mrgray.com        # OK (my email).

和..

GithubUserForProject() {  # in pwd
    ORIGIN=$(git config --get remote.origin.url) && echo $ORIGIN
    OWNER=${ORIGIN%/*}     && echo $OWNER  # trim URL tail
    OWNER=${OWNER#*.com/}  && echo $OWNER  # trim URL head
    OWNER=${OWNER#*:}      && echo $OWNER  # trim ssh URL head
}

$ cd /local/git/MyGitHubRepo && GithubUserForProject
↓ git@github.com:mralexgray/MyGitHubRepo.git
↓ git@github.com:mralexgray
↳ mralexgray            # OK (my username, but skanky way of finding it) 

但是……

$ cd /local/git/SomeGuysProject && GithubUserForProject
↓ git://github.com/someguy/SomeGuysProject.git
↓ git://github.com/someguy
↳ someguy              # WRONG! (cloned repo's user!)

那么,可以如何以编程方式确定我的 github“短用户名”,无论是来自 environment、github API 请求等,还是(通过脚本或终端会话?

【问题讨论】:

  • 如果您只是指您自己的帐户名称,而不是根据您正在使用的克隆而变化的帐户名称,为什么不直接硬编码呢?它不会改变。如果它是你试图从 git 遥控器派生的东西,git 无法知道哪些遥控器是“你的”或“规范的”。要对 github 进行 API 调用,您必须提供用户凭据,因此您不妨只为自己提供用户名,而不用打扰调用。也许export GITHUB_USERNAME='mralexgray' 并完成它?不知何故,我觉得我误解了你的问题。
  • 不,你明白了,你的解决方案是我传统上管理这个变量的方式。但我觉得这个值与“工作流程”如此分离有点奇怪,并认为一定有某种我没有考虑过的方法。
  • 奇怪?这对我来说似乎很明智。 git 应该与所有遥控器对话,就好像它们是一样的——为什么它应该能够找出你的 github 帐户名?您可以在~/.ssh/config github 节中包含您的用户名作为评论并解析出来。至少那是一个合适的地方来记录它?

标签: git bash github terminal environment-variables


【解决方案1】:

我同意评论者的观点:Bash 怎么知道你的用户名,除非你告诉它?

您可以使用git push 进行测试以了解它是否是“您的”存储库,但如果您的 SSH 密钥设置不正确,即使这样也会失败。简而言之,您应该将其设置为~/.bash_profile 或其他内容并完成它。

【讨论】:

    【解决方案2】:

    我认为 这样一个愚蠢的问题 如此明显地没有解决是很愚蠢的......所以因为不知道如何巧妙地解析 bash 中的字符串而不求助于我所知道的 SED 组合心,还有……

    security find-internet-password -s github.com | grep acct | sed 's/"acct"<blob>="//g' | sed 's/"//g'

    瞧瞧....

    mralexgray

    这可能取决于是否安装了 Github mac 客户端……但又一次……可能没有

    【讨论】:

    • 您可以将该命令简化为security find-internet-password -s github.com | grep acct | sed 's/^.*="\(.*\)".*$/\1/'
    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 2011-09-16
    • 2020-11-15
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多