当我克隆存储库时,我一直在"忍受"Github总是询问我的用户名和密码.我想绕过这一步,因为这是我工作流程中的一个烦恼.
我尝试使用本指南设置SSH密钥(我成功完成了).https://help.github.com/articles/generating-ssh-keys我成功了.
我的问题是,在克隆存储库时(使用SSH),我仍然被要求输入我的github密码和密码.我的理解是,在设置了这个SSH密钥后,我不再需要这样做了.
我有点不确定要问什么,所以我只是陈述我的目标.
我希望能够克隆存储库而无需一直输入我的Github信息.
我的SSH密钥丢失了什么?如果有人可以提供一些指导或资源,我会很感激,因为在GitHub中进行SSH身份验证时,我总是感到有些失落.
据我所知,这是一个测试事情是否正常工作的命令,这是我控制台的输出:
~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
当我输入密码时,首先应该失败吗?然后,当我输入我的密码时,它会通过.
我有一个应用程序,使用Git执行各种有趣的东西(如运行git clone和git push),我正在尝试停靠它.
我遇到了一个问题,虽然我需要能够在容器中添加SSH密钥以供容器"用户"使用.
我尝试将其复制/root/.ssh/,更改$HOME,创建一个git ssh包装器,但仍然没有运气.
这是Dockerfile供参考:
#DOCKER-VERSION 0.3.4
from ubuntu:12.04
RUN apt-get update
RUN apt-get install python-software-properties python g++ make git-core openssh-server -y
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install nodejs -y
ADD . /src
ADD ../../home/ubuntu/.ssh/id_rsa /root/.ssh/id_rsa
RUN cd /src; npm install
EXPOSE 808:808
CMD [ "node", "/src/app.js"]
Run Code Online (Sandbox Code Playgroud)
app.js 像git一样运行git命令 git pull
如何列出一个私人Github上回购为"dependency"中package.json?我尝试了npm的Github URL语法ryanve/example,但是npm install在package文件夹中进行了私有依赖项的"无法安装"错误.是否有一个特殊的语法(或其他机制)依赖私人回购?
我正在尝试使用 GitHub 操作为 Node.js 项目运行构建。作为 的一部分npm install,我需要直接从私有 GitHub 存储库(而不是来自 GPR!)安装 npm 模块。
在package.json我有:
"dependencies": {
...
"my-module": "github:<org>/<my-module>#master",
...
},
Run Code Online (Sandbox Code Playgroud)
但是,在运行时npm install,我得到:
npm 错误!git@github.com:权限被拒绝(公钥)。npm 错误!致命:无法从远程存储库读取。
存储库是我自己组织的一部分,它在本地(即从我的机器)工作。我怎样才能让这个运行?
我已经尝试设置NODE_AUTH_TOKEN环境变量,但没有任何区别。尽管您经常发现此建议,但它似乎只针对 GPR。我想避免的是必须将令牌硬编码到package.json文件中。对此有何想法?
我尝试npm install在全新安装Node和Git后运行时收到以下错误
任何人都知道可能导致它的原因,以及如何解决这个问题?
package.json (删除公司详情)
{
"name": "xxx",
"version": "1.0.0",
"description": "xxx",
"engines": {
"node": "5.0.0",
"npm": "3.3.9"
},
"repository": "xxx",
"private": true,
"license": "UNLICENSED",
"dependencies": {
"dijit": "https://github.com/dojo/dijit.git#1.10.4",
"dojo": "1.10.4",
"fg-dialog": "0.1.5",
"politespace": "0.1.4",
"shoestring": "1.0.3"
},
"devDependencies": {
"body-parser": "^1.14.1",
"chalk": "^1.1.1",
"compression": "^1.6.0",
"del": "^2.0.2",
"dojo-util": "https://github.com/dojo/util.git#1.10.4",
"express": "^4.13.3",
"glob": "^5.0.15",
"gulp": "^3.9.0",
"gulp-concat": "^2.6.0",
"gulp-git": "^1.6.0",
"gulp-html-minifier": "^0.1.6",
"gulp-jsbeautifier": "^1.0.1",
"gulp-jshint": "^1.11.2",
"gulp-jshint-xml-file-reporter": "^0.5.1",
"gulp-jsonminify": "^1.0.0",
"gulp-replace": "^0.5.4",
"gulp-task-listing": "^1.0.1",
"gulp-uglify": "^1.4.1",
"gulp-util": "^3.0.6", …Run Code Online (Sandbox Code Playgroud) Npm 允许使用自定义 git URL 来指定依赖项(请参阅package.json 中的 npm install private github repositories by dependency)。
但是,这些依赖项通常打包并发布到 npm 注册表,因此可以按名称安装它们。这个发布过程通常包括构建文件、缩小文件等,这些文件通常在 github 中不可用。
使用自定义 git URL 安装依赖项时,可能需要这些构建、缩小等文件,但它们将不可用。
要生成这些文件,可以使用npm 脚本在安装生命周期中运行一个钩子。但是,我找不到适合此任务的脚本,因为:
prepare和prepublishOnlynpm pack和之后运行(如文档中所述)。但是,在全局安装(节点 LTS 版本:v6.11.0,npm 版本(来自节点 LTS):3.10.10)中尝试此脚本时不会触发它。npm publish不要使用安装。使用 .gyp 文件进行编译,并为其他任何内容预发布。您几乎不必显式设置预安装或安装脚本。如果您正在这样做,请考虑是否还有其他选择。安装或预安装脚本的唯一有效用途是编译,必须在目标架构上完成。
在 npm 中,我希望能够从私有 GitHub 存储库安装包作为依赖项,而git+https不必对实际的进行硬编码github_username:personal_access_token,而是将它们作为(环境)变量插入依赖项字符串中。
所以而不是
package.json:
...
"dependencies": {
...
"my-private-github-repo": "git+https://<github_username>:<personal_access_token>@github.com/some/package.git",
...
}
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
package.json:
...
"dependencies": {
...
"my-private-github-repo": "git+https://${github_username}:${personal_access_token}@github.com/some/package.git",
...
}
Run Code Online (Sandbox Code Playgroud)
在应用我希望能够执行的版本控制 时,硬编码凭据是一个主要禁忌。package.json
做这个的最好方式是什么?
我们有2份报告
在 Repo 1 > package.json 中有一个依赖项
"dependencies": {
"repo-2": "git+https://git-codecommit.us-east-1.amazonaws.com/v1/repos/repo-2/"
}
Run Code Online (Sandbox Code Playgroud)
然后,在“repo-1”的 CodeBuild 中,我们有以下构建规范
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
commands:
- mkdir -p ./deploy
build:
commands:
- echo "Server copy START $(date)"
- cp -r ./index.js ./deploy/index.js
- cp -r ./package.json ./deploy/package.json
- cp -r ./buildspec.yml ./deploy/buildspec.yml
- echo "Server copy END $(date)"
- echo "Server npm install START $(date)"
- cd ./deploy && npm install --production
- echo "Server npm install END …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用私有仓库作为另一个项目的依赖项.我认为我做得对,但安装后新项目中的依赖项不可用,并且不在node_modules中.
在这篇文章之后,我可以看到我正确地将它包含在package.json中:
"myPackage": "git+https://github.com/myusername/mygitrepository.git"
Run Code Online (Sandbox Code Playgroud)
当我npm install在这个包上运行时,我看到它没有错误,但是在列表中的这个依赖项之后,它显示为extraneous(git+https://github.com/myusername/mygitrepository.git).
即使存在无关紧要的问题,也没有错误,并且依赖项不可用或在node_modules中列出.
更新:repo_A package.json
{
"name": "project-name",
"version": "1.0.0",
"description": "Backend utility functions",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/user/repo.git"
},
"author": "me",
"license": "ISC",
"bugs": {
"url": "https://github.com/user/repo/issues"
},
"homepage": "https://github.com/user/repo#readme",
"dependencies": {
"lodash": "^4.17.4",
"mongodb": "^2.2.25",
"redis": "^2.7.1",
"winston": "^2.3.1"
}
}
Run Code Online (Sandbox Code Playgroud)
更新:repo_B package.json
{
"name": "main-project-name",
"version": "1.0.0",
"description": "",
"repository": {
"type": "git",
"url": "git+https://github.com/user/repo.git"
},
"author": "someone else",
"homepage": "https://github.com/user/repo.git", …Run Code Online (Sandbox Code Playgroud) node.js ×5
npm ×5
git ×4
github ×4
package.json ×3
npm-install ×2
ssh-keys ×2
docker ×1
ssh ×1