我正在尝试使用个人访问令牌与GitHub进行身份验证。在GitHub的帮助文件中,它声明使用cURL方法进行身份验证(创建个人访问令牌)。我已经尝试过了,但是我仍然无法推送到GitHub。请注意,我正试图从未经验证的服务器(特拉维斯CI)推送。

cd $HOME
git config --global user.email "emailaddress@yahoo.com"
git config --global user.name "username"

curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages

cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf

git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages

这段代码会导致以下错误:

remote:匿名访问scuzzlebuzz /ol3-1。git否认。

致命:'https://github.com/scuzzlebuzzle/ol3-1.git/'认证失败"


当前回答

这对我使用ssh工作:

设置→开发人员设置→生成新的令牌。

git remote set-url origin https://[APPLICATION]:[NEW TOKEN]@github.com/[ORGANISATION]/[REPO].git

其他回答

如果你正在使用GitHub企业,克隆存储库或推送给你一个403错误,而不是提示输入用户名/令牌,你可以使用这个:

删除存储库 打开命令提示符并导航到您希望存储库所在的文件夹 类型: git克隆https://[USERNAME]:[TOKEN]@[GIT_ENTERPRISE_DOMAIN]/[ORGANIZATION]/[REPO].git

这可以通过使用github部署键来完成,它可以缩小对单个github回购的访问权限,以及使写权限可选。

Github部署密钥使用用户生成的ssh密钥,使用ssh-keygen创建一个私钥文件和一个公钥文件。

假设给定ssh-keygen的密钥名是key-test,私有和公共文件位于~/中。Ssh /key-test和~/. Ssh /key-test。酒吧。

假设github项目名为keytest。

要通过github项目网页向项目添加部署密钥,获取设置/部署密钥并单击添加。粘贴公钥文件的内容~/.ssh/key-test。进入目标框并确认。

修改~/的内容。Ssh /config文件包括以下内容:

Host gh-keytest
        Hostname github.com
        IdentityFile=/home/user/.ssh/key-test

注意:gh-keytest是一个任意的别名。

现在你可以使用了

git push git@gh-keytest:<githubaccountname>/keytest.git

只用推就能做到

git remote remove origin  # in case origin is already set
git remote add origin git@gh-keytest:<githubaccountname>/testscope.git
git push --set-upstream origin main

注意:用正确的分支名称替换main。

之后

git push 

是充分的。

我使用的是Ubuntu 20.04 (Focal Fossa),我一直收到消息说我很快就不能从控制台登录了。我非常困惑。

最后,我得到了下面的URL将工作。但是你需要知道如何创建一个PAT(个人访问令牌),你必须把它保存在你电脑上的一个文件中。

下面是最终URL的样子:

git push https://1234567890123456789012345678901234567890@github.com/user-name/repo.git

长PAT(个人访问令牌)值——URL中//和@符号之间的整个长值就是你的PAT。

User-name将是您的用户名

回购。Git将是您的确切存储库名称

你也可以这样使用它:

当你做

git push

1. 系统将提示您输入用户名和密码

2. 只要像往常一样提交您的用户名

3.现在提交您的PAT作为您的密码,它将工作。

您需要按照以下步骤生成一个PAT:创建个人访问令牌

这将为您提供PAT值,您将放置在您的URL。

当您创建PAT时,请确保您选择了以下选项,以便它能够允许您管理存储库。

拯救你的PAT或失去它

获得PAT后,需要将其保存在本地文件中,以便再次使用。如果你不把它保存在某个地方,就没有办法再看到它,你将被迫创建一个新的PAT。

现在你至少需要:

在控制台中显示它的方法,以便您可以再次看到它。 或者,一种自动复制到剪贴板的方法。

对于1,只需使用:

cat ~/files/myPatFile.txt

其中路径是存储PAT值的位置和文件的真实路径。

2

xclip -selection clipboard < ~/files/myPatFile.txt

这将把文件的内容复制到剪贴板,这样您就可以更容易地使用PAT。

供您参考-如果您没有xclip,请执行以下操作:

sudo apt-get install xclip

它下载并安装xclip。如果没有apt-get,可能需要使用其他安装程序(如YUM)。

通过在应用GitHub令牌上挣扎了这么多小时,最终它的工作原理如下:

$ cf_export GITHUB_TOKEN=$(codefresh get context github——decryph -o . Yaml | yq -y .spec.data.auth.password)

代码遵循Codefresh关于使用令牌克隆回购的指导(freestyle} 测试进行:sed %d%H%M匹配词'-123456-whatever' 推回回购(私人回购) 由DockerHub webhooks触发

以下是完整的代码:

version: '1.0'
steps:
  get_git_token:
    title: Reading Github token
    image: codefresh/cli
    commands:
      - cf_export GITHUB_TOKEN=$(codefresh get context github --decrypt -o yaml | yq -y .spec.data.auth.password)
  main_clone:
    title: Updating the repo
    image: alpine/git:latest
    commands:
      - git clone https://chetabahana:$GITHUB_TOKEN@github.com/chetabahana/compose.git
      - cd compose && git remote rm origin
      - git config --global user.name "chetabahana"
      - git config --global user.email "chetabahana@gmail.com"
      - git remote add origin https://chetabahana:$GITHUB_TOKEN@github.com/chetabahana/compose.git
      - sed -i "s/-[0-9]\{1,\}-\([a-zA-Z0-9_]*\)'/-`date +%d%H%M`-whatever'/g" cloudbuild.yaml
      - git status && git add . && git commit -m "fresh commit" && git push -u origin master

输出……

On branch master 
Changes not staged for commit: 
  (use "git add ..." to update what will be committed) 
  (use "git checkout -- ..." to discard changes in working directory) 

modified:   cloudbuild.yaml 

no changes added to commit (use "git add" and/or "git commit -a") 
[master dbab20f] fresh commit 
 1 file changed, 1 insertion(+), 1 deletion(-) 
Enumerating objects: 5, done. 
Counting objects:  20% (1/5) ...  Counting objects: 100% (5/5), done. 
Delta compression using up to 4 threads 
Compressing objects:  33% (1/3) ... Writing objects: 100% (3/3), 283 bytes | 283.00 KiB/s, done. 
Total 3 (delta 2), reused 0 (delta 0) 
remote: Resolving deltas:   0% (0/2)  ...   (2/2), completed with 2 local objects. 
To https://github.com/chetabahana/compose.git 
   bbb6d2f..dbab20f  master -> master 
Branch 'master' set up to track remote branch 'master' from 'origin'. 
Reading environment variable exporting file contents. 
Successfully ran freestyle step: Cloning the repo 

我必须添加oauth或oauth2作为用户名才能成功验证:

https://oauth:<TOKEN>@github.com/user/repo.git