diff --git a/cargo/lib/dependabot/cargo/file_fetcher.rb b/cargo/lib/dependabot/cargo/file_fetcher.rb index f9262c2d49e..9ad3681fac3 100644 --- a/cargo/lib/dependabot/cargo/file_fetcher.rb +++ b/cargo/lib/dependabot/cargo/file_fetcher.rb @@ -144,7 +144,7 @@ def path_dependency_paths_from_file(file) next unless details.is_a?(Hash) next unless details["path"] - paths << File.join(details["path"], "Cargo.toml") + paths << File.join(details["path"], "Cargo.toml").delete_prefix("/") end end @@ -155,7 +155,7 @@ def path_dependency_paths_from_file(file) next unless details.is_a?(Hash) next unless details["path"] - paths << File.join(details["path"], "Cargo.toml") + paths << File.join(details["path"], "Cargo.toml").delete_prefix("/") end end end diff --git a/cargo/spec/dependabot/cargo/file_fetcher_spec.rb b/cargo/spec/dependabot/cargo/file_fetcher_spec.rb index d42e16aaafc..07d2a7823d7 100644 --- a/cargo/spec/dependabot/cargo/file_fetcher_spec.rb +++ b/cargo/spec/dependabot/cargo/file_fetcher_spec.rb @@ -157,6 +157,20 @@ end end + context "with a blank path" do + let(:parent_fixture) do + fixture( + "github", + "contents_cargo_manifest_path_deps_blank.json" + ) + end + + it "fetches the path dependency's Cargo.toml" do + expect(file_fetcher_instance.files.map(&:name)). + to match_array(%w(Cargo.toml)) + end + end + context "for a target dependency" do let(:parent_fixture) do fixture( diff --git a/cargo/spec/fixtures/github/contents_cargo_manifest_path_deps_blank.json b/cargo/spec/fixtures/github/contents_cargo_manifest_path_deps_blank.json new file mode 100644 index 00000000000..3195dd84bc8 --- /dev/null +++ b/cargo/spec/fixtures/github/contents_cargo_manifest_path_deps_blank.json @@ -0,0 +1,18 @@ +{ + "name": "Cargo.toml", + "path": "Cargo.toml", + "sha": "f64d367113fa82730ab846bff5c0775ef13e0695", + "size": 1724, + "url": "https://api.github.com/repos/khonsulabs/fabruic/contents/Cargo.toml?ref=main", + "html_url": "https://github.com/khonsulabs/fabruic/blob/main/Cargo.toml", + "git_url": "https://api.github.com/repos/khonsulabs/fabruic/git/blobs/f64d367113fa82730ab846bff5c0775ef13e0695", + "download_url": "https://raw.githubusercontent.com/khonsulabs/fabruic/main/Cargo.toml", + "type": "file", + "content": "W3BhY2thZ2VdCm5hbWUgPSAiZmFicnVpYyIKdmVyc2lvbiA9ICIwLjAuMS1k\nZXYuNSIKZGVzY3JpcHRpb24gPSAiQSBzaW1wbGUgUVVJQy1iYXNlZCBwcm90\nb2NvbCB1c2luZyBxdWlubi4gV3JpdHRlbiBmb3IgUGxpYW50REIgYW5kIENv\nc21pYyBWZXJnZS4iCmxpY2Vuc2UgPSAiTUlUIE9SIEFwYWNoZS0yLjAiCnJl\ncG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2tob25zdWxhYnMvZmFi\ncnVpYyIKa2V5d29yZHMgPSBbInF1aWMiXQpjYXRlZ29yaWVzID0gWyJuZXR3\nb3JrLXByb2dyYW1taW5nIl0KZWRpdGlvbiA9ICIyMDIxIgoKW2ZlYXR1cmVz\nXQpkYW5nZXJvdXMgPSBbXQpkZWZhdWx0ID0gWyJyY2dlbiJdCnRlc3QgPSBb\nXQp0cnVzdC1kbnMgPSBbInRydXN0LWRucy1yZXNvbHZlciJdCgpbZGVwZW5k\nZW5jaWVzXQphc3luYy10cmFpdCA9ICIwLjEiCmJpbmNvZGUgPSAiMSIKYnl0\nZXMgPSAiMSIKY3QtbG9ncyA9ICIwLjkiCmZsdW1lID0gIjAuMTAiCmZ1dHVy\nZXMtY2hhbm5lbCA9ICIwLjMiCmZ1dHVyZXMtZXhlY3V0b3IgPSAiMC4zIgpm\ndXR1cmVzLXV0aWwgPSAiMC4zIgppZl9jaGFpbiA9ICIxIgpwYXJraW5nX2xv\ndCA9IHsgdmVyc2lvbiA9ICIwLjEyIiwgZmVhdHVyZXMgPSBbInNlbmRfZ3Vh\ncmQiXSB9CnBpbi1wcm9qZWN0ID0gIjEiCnF1aW5uID0gIjAuOCIKcmNnZW4g\nPSB7IHZlcnNpb24gPSAiMC45IiwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNl\nLCBvcHRpb25hbCA9IHRydWUgfQpyaW5nID0gIjAuMTYiCnJ1c3RscyA9IHsg\ndmVyc2lvbiA9ICIwLjIwIiwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlLCBm\nZWF0dXJlcyA9IFsKCSJkYW5nZXJvdXNfY29uZmlndXJhdGlvbiIsCl0gfQpz\nZXJkZSA9IHsgdmVyc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbImRlcml2ZSJd\nIH0KdGhpc2Vycm9yID0gIjEiCnRpbWUgPSAiMC4zIgp0b2tpbyA9IHsgdmVy\nc2lvbiA9ICIxIiwgZmVhdHVyZXMgPSBbInJ0LW11bHRpLXRocmVhZCJdIH0K\ndHJ1c3QtZG5zLXJlc29sdmVyID0geyB2ZXJzaW9uID0gIjAuMjEuMC1hbHBo\nYS40IiwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlLCBvcHRpb25hbCA9IHRy\ndWUsIGZlYXR1cmVzID0gWwoJImRucy1vdmVyLWh0dHBzLXJ1c3RscyIsCgki\nZG5zc2VjLXJpbmciLAoJInRva2lvLXJ1bnRpbWUiLApdIH0KdXJsID0gIjIi\nCndlYnBraSA9IHsgdmVyc2lvbiA9ICIwLjIyIiwgZGVmYXVsdC1mZWF0dXJl\ncyA9IGZhbHNlIH0Kd2VicGtpLXJvb3RzID0gIjAuMjIiCnJ1c3Rscy1uYXRp\ndmUtY2VydHMgPSAiMC42Igp4NTA5LXBhcnNlciA9ICIwLjEyIgp6ZXJvaXpl\nID0geyB2ZXJzaW9uID0gIjEiLCBmZWF0dXJlcyA9IFsiemVyb2l6ZV9kZXJp\ndmUiXSB9CgpbZGV2LWRlcGVuZGVuY2llc10KYW55aG93ID0gIjEiCmZhYnJ1\naWMgPSB7IHBhdGggPSAiIiwgZmVhdHVyZXMgPSBbInJjZ2VuIiwgInRlc3Qi\nXSB9CnF1aW5uLXByb3RvID0geyB2ZXJzaW9uID0gIjAuOCIsIGRlZmF1bHQt\nZmVhdHVyZXMgPSBmYWxzZSB9CnRva2lvID0geyB2ZXJzaW9uID0gIjEiLCBm\nZWF0dXJlcyA9IFsibWFjcm9zIl0gfQp0cnVzdC1kbnMtcHJvdG8gPSAiMC4y\nMS4wLWFscGhhLjQiCgpbcHJvZmlsZS5yZWxlYXNlXQpjb2RlZ2VuLXVuaXRz\nID0gMQpsdG8gPSB0cnVlCgpbcGFja2FnZS5tZXRhZGF0YS5kb2NzLnJzXQpm\nZWF0dXJlcyA9IFsiZGFuZ2Vyb3VzIiwgInJjZ2VuIiwgInRydXN0LWRucyJd\nCnRhcmdldHMgPSBbXQo=\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/khonsulabs/fabruic/contents/Cargo.toml?ref=main", + "git": "https://api.github.com/repos/khonsulabs/fabruic/git/blobs/f64d367113fa82730ab846bff5c0775ef13e0695", + "html": "https://github.com/khonsulabs/fabruic/blob/main/Cargo.toml" + } +}