使用github action 进行CI编译时, 项目使用了 git submodule 子模块
在进行编译的时候总是报错,找不到
/usr/bin/git submodule sync /usr/bin/git -c protocol.version=2 submodule update --init --force --depth=1 Submodule 'src/***-setting' (***github.com/****-setting.git) registered for path 'src/dpqd-mdc-common-ui-setting' Cloning into '/home/runner/work//************/src//************g'... remote: Repository not found. Error: fatal: repository 'https://github.com//************.git/' not found Error: fatal: clone of '***github.com/*****-setting.git' into submodule path '/home/runner/work/****/src/****-setting' failed Failed to clone 'src/****-setting'. Retry scheduled Cloning into '/home/runner/work/****/src/****-setting'... remote: Repository not found. Error: fatal: repository 'https://github.com/****-setting.git/' not found Error: fatal: clone of '***github.com/****-setting.git' into submodule path '/home/runner/work/****/src/****-setting' failed Failed to clone 'src/****-setting' a second time, aborting Error: The process '/usr/bin/git' failed with exit code 1
部分 cicl.yml
jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 with: submodules: 'true' token: ${{ secrets.GITHUB_TOKEN }} # Runs a single command using the runners shell - name: Run a one-line script run: echo start build the project!
.gitsubmodules 文件
[submodule "src/****-setting"] path = src/***-setting url = https://******@github.com/***/***-setting.git branch = DEV
根据文档也设置了 token, 但是还是报错, 请教大佬们了。
根据你提供的错误信息,看起来是因为在 GitHub Action 的环境中,子模块的仓库无法被访问,导致克隆失败。
在 GitHub Action 中,你可以使用 ${{ secrets.GITHUB_TOKEN }}
提供的令牌来访问该仓库和子模块。但是需要注意的是,该令牌默认情况下不具备对其他仓库的访问权限。因此,如果子模块所在的仓库和你的主仓库不属于同一个组织或用户,可能会导致无法访问子模块。
解决方法之一是为子模块添加一个 Personal Access Token(PAT),该 Token 必须具备访问子模块仓库的权限。然后在 GitHub Action 的配置文件中设置一个新的环境变量来存储该 PAT,并使用它来克隆子模块。
以下是一个示例配置文件的修改:
jobs: build: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v2 with: submodules: recursive - name: Set up PAT env: ACCESS_TOKEN: ${{ secrets.PAT }} # PAT 是你自己的 Personal Access Token run: git config --global submodule."src/****-setting".oauth-token ${ACCESS_TOKEN} - name: Update submodules run: git submodule update --recursive --remote
在这个示例中,通过 git config
命令设置子模块的访问令牌为 ${ACCESS_TOKEN}
环境变量中的值。然后使用 git submodule update --recursive --remote
命令来确保子模块的最新版本被克隆。
请确保在 Secrets 页面中添加了名为 PAT
的仓库级别机密,并将 Personal Access Token 的值作为该机密的内容。
我试图用Github Api做一个授权请求,传递用户名和密码。但它不起作用,我得到了401状态代码。 文件里有一部分说 这是我的密码:
每当我尝试推送到我的存储库时,我都必须一次又一次地登录。 如果我解开上面的复选框,那么它只会正常工作,但仍然会再次要求我输入用户名和密码,这并不理想。 PC配置:--VSCode版本:1.45 Debian-操作系统版本:Ubuntu 18.04
我在我的Raspberry Pi上克隆了GitHub上的一个项目,创建了一个新的分支,并将所有内容推送到存储库中。为此,我需要下一个命令: 我遇到的问题是我无法将分支推到GitHub.com。我需要输入我的用户名和密码,但我不能使用2FA。这是Git或GitHub中的一个bug吗?是否有方法获得身份验证密钥并输入它? 我不会在GitHub上启用2fa。
2.Github使用代码https://reduxapp.herokuapp.com/auth/callback?code=9536286A59228E7784A1重定向回来,并触发githubSendCode('9536286A59228E7784A1')操作 你可以在网络呼叫选项中看到呼叫是通过的,但POST呼叫从来没有发生过。然后出现控制台错误: 下面是我的操作函数:
在一个脚本中,我试图用oauth令牌克隆Github存储库。 根据本教程: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth 我应该能够像这样为它构建一个命令: 如果我使用正确的访问令牌手动尝试此操作,它仍会询问我的密码。 如果我在命令行上尝试它,我只是得到一个没有找到