From b76b9023ef3a580d3d4ab429c3d679108ba1ffa0 Mon Sep 17 00:00:00 2001 From: John Haley Date: Tue, 6 Jan 2015 10:40:28 -0700 Subject: [PATCH 1/2] Made sshKeyNew synchronous --- generate/input/descriptor.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generate/input/descriptor.json b/generate/input/descriptor.json index cca202762..067f1046f 100644 --- a/generate/input/descriptor.json +++ b/generate/input/descriptor.json @@ -352,6 +352,9 @@ "git_cred_ssh_key_from_agent":{ "isAsync": false }, + "git_cred_ssh_key_new": { + "isAsync": false + }, "git_cred_userpass": { "ignore": true } From 84769fe6d3320f6abdd693eb4d7ed3b0e84250ec Mon Sep 17 00:00:00 2001 From: John Haley Date: Tue, 6 Jan 2015 15:36:22 -0700 Subject: [PATCH 2/2] Added tests for changes to sshKeyNew --- test/id_rsa | 27 +++++++++++++++++++++++++++ test/id_rsa.pub | 1 + test/tests/clone.js | 24 ++++++++++++++++++++++++ test/tests/cred.js | 16 +++++++++------- 4 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 test/id_rsa create mode 100644 test/id_rsa.pub diff --git a/test/id_rsa b/test/id_rsa new file mode 100644 index 000000000..91ae66320 --- /dev/null +++ b/test/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA5E3IF5x7qkdIG8HoJ6/Wcc+IU5I41f0qYCTTyc+5qPxyjW8d +K6o49T9MhkdOd0fRkhRYptrreDSvQzz1JEHcrnMPg6C5GERyZpSeATWvTUwg9LJf +nklztvevZGaIwmEjoG5pAicfJnYE8Ic3YBP44Qa7GNITxOqUU5VPh+vP83jXSVAC +CX9Cy1zpt4aUyiwNfVSApbZf4/VbwSaYER3QcpVxMi/B6JGKY5EEJNWV495uzZaP +Mg3YOFXJYziVgvl4fJMUTHyucf1UVbGCgkFzeUJcynqn+1EkQ1Ev+5haD1AVvneJ +MCrRsUbFriC9snqs4n2VEzoLIffmVgFsVn30GQIDAQABAoIBAQDPQm2sQbti0mN8 +D4Uawl8D40v30n8WhUa7EbPTOmlqKAQ2sfDhex9KRbTLEmEBmImA/Eee8o9iCTIy +8Fv8Fm6pUHt9G6Pti/XvemwW3Q3QNpSUkHqN0FDkgecQVqVBEb6uHo3mDm4RFINX +eOmkp30BjIK9/blEw1D0sFALLOEUPaDdPMwiXtFgqfrFSgpDET3TvQIwZ2LxxTm0 +cNmP3sCSlZHJNkZI4hBEWaaXR+V5/+C1qblDCo5blAWTcX3UzqrwUUJgFi6VnBuh +7S9Q6+CEIU+4JRyWQNmY8YgZFaAp6IOr/kyfPxTP1+UEVVgcLn3WDYwfG9og0tmz +fzlruAgBAoGBAPfz73Pey86tNZEanhJhbX8gVjzy2hvyhT0paHg0q/H6c1VWOtUH +OwZ3Ns2xAZqJhlDqCHnQYSCZDly042U/theP4N8zo1APb4Yg4qdmXF9QE1+2M03r +kS6138gU/CSCLf8pCYa6pA/GmsaXxloeJGLvT4fzOZRsVav80/92XHRhAoGBAOu2 +mKh4Gr1EjgN9QNbk9cQTSFDtlBEqO/0pTepvL73UvNp/BAn4iYZFU4WnklFVBSWc +L84Sc732xU12TAbTTUsa6E7W29pS8u7zVTxlIdQIIU5pzDyU1pNNk2kpxzte5p3Y +PDtniPFsoYLWoH0LpsKL93t2pLAj+IOkE6f3XBq5AoGAIKaYo5N1FxQr952frx/x +QUpK0N/R5Ng8v18SiLG26rhmM5iVSrQXC7TrHI7wfR8a9tC6qP/NqnM9NuwC/bQ0 +EEo7/GhaWxKNRwZRkmWiSFLNGk9t1hbtGU+N1lUdFtmloPIQdRNiw0kN3JTj474Q +YI7O1EItFORnK6yxZfR6HEECgYEA1CT7MGUoa8APsMRCXyaiq15Pb8bjxK8mXquW +HLEFXuzhLCW1FORDoj0y9s/iuKC0iS0ROX8R/J7k5NrbgikbH8WP36UxKkYNr1IC +HOFImPTYRSKjVsL+fIUNb1DSp3S6SsYbL7v3XJJQqtlQiDq8U8x1aQFXJ9C4EoLR +zhKrKsECgYBtU/TSF/TATZY5XtrN9O+HX1Fbz70Ci8XgvioheVI2fezOcXPRzDcC +OYPaCMNKA5E8gHdg4s0TN7uDvKTJ+KhSg2V7gZ39A28dHrJaRX7Nz4k6t2uEBjX9 +a1JidpAIbJ+3w7+hj6L299tVZvS+Y/6Dz/uuEQGXfJg/l/5CCvQPsA== +-----END RSA PRIVATE KEY----- diff --git a/test/id_rsa.pub b/test/id_rsa.pub new file mode 100644 index 000000000..bd84623f1 --- /dev/null +++ b/test/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkTcgXnHuqR0gbwegnr9Zxz4hTkjjV/SpgJNPJz7mo/HKNbx0rqjj1P0yGR053R9GSFFim2ut4NK9DPPUkQdyucw+DoLkYRHJmlJ4BNa9NTCD0sl+eSXO2969kZojCYSOgbmkCJx8mdgTwhzdgE/jhBrsY0hPE6pRTlU+H68/zeNdJUAIJf0LLXOm3hpTKLA19VICltl/j9VvBJpgRHdBylXEyL8HokYpjkQQk1ZXj3m7Nlo8yDdg4VcljOJWC+Xh8kxRMfK5x/VRVsYKCQXN5QlzKeqf7USRDUS/7mFoPUBW+d4kwKtGxRsWuIL2yeqzifZUTOgsh9+ZWAWxWffQZ your_email@example.com diff --git a/test/tests/clone.js b/test/tests/clone.js index 83ccb0454..283995291 100644 --- a/test/tests/clone.js +++ b/test/tests/clone.js @@ -8,9 +8,13 @@ describe("Clone", function() { var http = path.resolve("test/repos/http"); var https = path.resolve("test/repos/https"); var ssh = path.resolve("test/repos/ssh"); + var sshManual = path.resolve("test/repos/sshmanual"); var git = path.resolve("test/repos/git"); var file = path.resolve("test/repos/file"); + var sshPublicKey = path.resolve("./id_rsa.pub"); + var sshPrivateKey = path.resolve("./id_rsa"); + var Repository = require("../../lib/repository"); var Clone = require("../../lib/clone"); var NodeGit = require("../../"); @@ -62,6 +66,26 @@ describe("Clone", function() { }); }); + it("can clone with ssh while manually loading a key", function() { + var url = "git@github.com:nodegit/test.git"; + var opts = { + ignoreCertErrors: 1, + remoteCallbacks: { + credentials: function(url, userName) { + return NodeGit.Cred.sshKeyNew( + userName, + sshPublicKey, + sshPrivateKey, + ""); + } + } + }; + + return Clone.clone(url, sshManual, opts).then(function(repository) { + assert.ok(repository instanceof Repository); + }); + }); + it("can clone with git", function() { var url = "git://github.com/nodegit/test.git"; var opts = { ignoreCertErrors: 1 }; diff --git a/test/tests/cred.js b/test/tests/cred.js index 3cda288f8..49cf86798 100644 --- a/test/tests/cred.js +++ b/test/tests/cred.js @@ -1,7 +1,10 @@ var assert = require("assert"); +var path = require("path"); describe("Cred", function() { var NodeGit = require("../../"); + var sshPublicKey = path.resolve("./id_rsa.pub"); + var sshPrivateKey = path.resolve("./id_rsa"); it("can create default credentials", function() { NodeGit.Cred.defaultNew().then(function (defaultCreds) { @@ -10,14 +13,13 @@ describe("Cred", function() { }); it("can create ssh credentials using passed keys", function() { - NodeGit.Cred.sshKeyNew( + var cred = NodeGit.Cred.sshKeyNew( "username", - "public key", - "private key", - "passphrase") - .then(function (sshCreds) { - assert(sshCreds instanceof NodeGit.Cred); - }); + sshPublicKey, + sshPrivateKey, + ""); + + assert(cred instanceof NodeGit.Cred); }); it("can create credentials using plaintext", function() {