我在 docker 环境中使用 gitea 版本控制系统。使用的gitea是无根类型的镜像。
\nhttp 端口映射为 \xe2\x80\x9c8084:3000\xe2\x80\x9d,ssh 端口映射为 \xe2\x80\x9c2224:2222\xe2\x80\x9d。
\n我在 Linux 主机上生成了密钥,并将生成的公钥添加到了我的 Gitea 帐户中。
\n1.测试环境
\n后来我创建了 ssh 配置文件nano /home/campos/.ssh/config :
Host localhost\n HostName localhost\n User git\n Port 2224\n IdentityFile ~/.ssh/id_rsa\nRun Code Online (Sandbox Code Playgroud)\n完成设置后,我创建了 myRepo 存储库并克隆了它。
\n为了执行克隆,我将 url 从 更改ssh://git@localhost:2224/campos/myRepo.git为git@localhost:/campos/myRepo.git
要克隆存储库,我输入:git clone git@localhost:/campos/myRepo.git
这很完美!
\n2.生产环境
\n但是,在定义反向代理和域名时,无法克隆存储库。
\n在执行克隆之前,我更改了ssh配置文件:
\nHost gitea.domain.com\n HostName gitea.domain.com\n User git\n Port 2224\n IdentityFile ~/.ssh/id_rsa\nRun Code Online (Sandbox Code Playgroud)\n然后我再次尝试克隆存储库:
\ngit clone git@gitea.domain.com:/campos/myRepo.git
我使用 go 项目go-git作为 git 客户端,并希望从通过gitea托管的私有 git 存储库中获取数据。
执行此操作的适当函数是func (r *Remote) Fetch(o *FetchOptions) error,它需要一个transport.AuthMethod对象进行身份验证。
我尝试了以下方法:
repo, _ := git.PlainOpen("/path/to/project/folder")
err := repo.Fetch(&git.FetchOptions{
Auth: http.NewBasicAuth("someUser", "andThePassword"),
})
Run Code Online (Sandbox Code Playgroud)
...它只是返回:
无效的身份验证方法
如果我使用也会发生同样的情况
authenticator, _ := ssh.NewSSHAgentAuth("git")
Run Code Online (Sandbox Code Playgroud)
从包装中"gopkg.in/src-d/go-git.v4/plumbing/transport/ssh"。
另外,如果我使用证书:
authenticator, _:= ssh.NewPublicKeysFromFile("gitea name", "/home/name/.ssh/id_rsa", "passphrase")
Run Code Online (Sandbox Code Playgroud)
如何找出支持哪种身份验证方法,以及是否有transport.AuthMethod我可以使用的现有实现?
我正在测试Gitea,并希望它能触发Jenkins构建,非常基本的用例.我知道现有的GOG可以使用webhook插件,但最近还发现Jenkins也有一个Gitea插件.
在GOGS案例中,您可以通过以下方式致电Jenkins: http:// localhost:8080/gogs-webhook /?job = job_name
在上面的示例中,显然根据需要更新Jenkins位置和作业名称.
问题是没有Gitea插件的文档,但根据源代码,URL应该是:
我认为应该发生的顺序如下:
问题是gitea插件如何知道要执行哪个工作?你怎么指定这个?现在我可以看到gitea正在上面的URL向Jenkins发送POST,但没有发生任何事情,Jenkins日志也没有任何信息可以理解它失败的原因.
编辑:
我遇到了一个问题,在将生成的公共SSH密钥复制到Gitea用户帐户后,Jenkins仍然无法访问存储库以使用管道编辑器.不知道我在这里缺少什么,因为我能够从localhost(在Docker环境之外)完美地推/拉并检查容器确实可以完美地看到对方....
谢谢
大家好。
我正在尝试为我为客户分叉的各种开源项目完整地镜像 Git 存储库,以便进行自定义。
这些是我正在遵循的步骤:
$ git clone --mirror https://github.com/pathto/project.git
$ cd project.git
$ git remote set-url --push origin git@git.localserver.net:pathto/project
$ git push --mirror
Run Code Online (Sandbox Code Playgroud)
最后一步我得到了![远程拒绝]一切。(预接收挂钩被拒绝)
我已经在 Gitea 上设置了存储库,并且安装了 SSH 密钥。所有内容都会上传,但上传完成后,所有内容都会出现错误。
我的最后一步是建立一个每日 cron,从 github/gitlab 获取数据,然后推送到本地服务器。
尝试通过 API 创建存储库。使用 swagger 执行模式:
\n\ncurl -X POST "https://URL/git/api/v1/user/repos?access_token=XXXXX" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \\"auto_init\\": true, \\"description\\": \\"blablabla\\", \\"gitignores\\": \\"string\\", \\"issue_labels\\": \\"string\\", \\"license\\": \\"string\\", \\"name\\": \\"blablabla\\", \\"private\\": true, \\"readme\\": \\"string\\"}"\nRun Code Online (Sandbox Code Playgroud)\n\n产生 500 错误,抱怨自述文件。
\n\n{"message":"initRepository: prepareRepoCommit: getRepoInitFile[string]: open /readme/string: file does not exist","url":"URLr"}\nRun Code Online (Sandbox Code Playgroud)\n\n猜测是因为这个参数:
\n\n\n\n\n“自述文件\\”:\\“字符串\\”
\n
我不知道 xe2x80x99 的建议值是什么,但在 swagger 文档中它是 xe2x80x99。
\n有什么想法吗?
免责声明:我对 Linux/Ubuntu 整体和系统管理都很陌生,也只是在空闲时间涉足它,所以请耐心、彻底地回答你的问题。
我使用 git-lfs 在 Ubuntu 20.04 服务器上安装了 Gitea。我让 Apache 运行反向代理来将我的子域与 gitea 一起使用。我还使用 certbot 将其配置为 SSH。
每次我尝试推送大文件 (~>1Gb) 时,都会收到来自 HTTP 413 的 LFS: Client 错误。
到目前为止我尝试过的:
这是我的 app.ini:
APP_NAME = Tali Git
RUN_USER = git
RUN_MODE = prod
[security]
INTERNAL_TOKEN = XXXXX
INSTALL_LOCK = true
SECRET_KEY = XXXXXXX
PASSWORD_HASH_ALGO = pbkdf2
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gitea
USER = gitea
PASSWD =
SCHEMA =
SSL_MODE = disable
CHARSET = utf8
PATH …Run Code Online (Sandbox Code Playgroud)