Clone by SSH not HTTP / GIT Server port override

Hi community,

I am using Drone with Gitea as GIT server. Everythink works fine, but the problem I have is that the clone step always tries to clone my private repositories by HTTP not over SSH. I’ve disallow the clone over HTTP so all users have to authenticate by rsa keys.

Initialized empty Git repository in /app/src/gitfs/.git/
2 + git fetch origin +refs/heads/ci:
3 fatal: could not read Username for 'http://git.example.com:3000': No such device or address

Is there a way to clone by SSH instead of HTTP?


Another problem I have:
The Gitea server is only reachable through port 80. I am using jwilder/proxy-manager to handle all incoming HTTP request and forward those to the to the responsible applications. Everything works fine, but Drone always tries to fetch from “git.example.com:3000” - is there a way to override the port? git.example.com:3000 is not reachable because the port is allowed.

Thanks in advance!

Best regards,
David Keller

The default clone step does not support cloning a repository using git+ssh. You would therefore need to disable the default clone step, and add a custom clone step (using custom clone commands or a plugin) to clone the repository using the ssh url. See https://docs.drone.io/user-guide/pipeline/cloning/#custom-logic

Updated link from above post: https://docs.drone.io/pipeline/docker/syntax/cloning/#custom-logic
Also worth to read this: Custom clone with ssh

1 Like

Just so in future people are looking into the above related issue (ssh git clone in drone), following links are great for troubleshooting the problem (apart from above ones which are awesome links :slight_smile: ):