diff --git a/.gitignore b/.gitignore
index 7e0286c80eb828eeebe4eecbe13789d15994ed4d..f155e8e8a0f5ea08252aad400c8e0d8ab87117e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ build
 Scratch*.java
 tmp
 .DS_Store
+libs
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aa0cf1bd0436538f6bdc0d4381765fa350c6c98f..a3dcad19ba3b641ac1b2f4fc9c1fdbae6bb7a6ac 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,8 +3,6 @@
 ####
 
 variables:
-  FAULT_SECTIONS: nshm-fault-sections
-  FAULT_SECTIONS_GIT: https://gitlab-ci-token:${CI_JOB_TOKEN}@code.usgs.gov/ghsc/nshmp/${FAULT_SECTIONS}.git
   JACOCO_HTML_DIR: ${REPORTS_DIR}/jacoco/test/html
   JUNIT_FILES: build/test-results/test/TEST-*.xml
   REPORTS_DIR: build/reports
@@ -20,12 +18,14 @@ stages:
 ####
 # Git clone nshm-fault-sections
 ####
-.fault-sections:
+.ssh-key:
   before_script:
-    - cd ..
-    - rm -rf ${FAULT_SECTIONS}
-    - git clone ${FAULT_SECTIONS_GIT}
-    - cd ${CI_PROJECT_NAME}
+    - eval $(ssh-agent -s)
+    - mkdir -p ~/.ssh
+    - chmod 700 ~/.ssh
+    - echo "${SSH_PRIVATE_KEY}" >> ~/.ssh/id_rsa
+    - chmod 0600 ~/.ssh/id_rsa
+    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
 
 ####
 # GitLab runner tags
@@ -47,7 +47,7 @@ stages:
 ####
 Build Project:
   extends:
-    - .fault-sections
+    - .ssh-key
     - .gradle
     - .tags
   stage: test
@@ -66,6 +66,7 @@ Build Project:
 ####
 Spotless Check:
   extends:
+    - .ssh-key
     - .gradle
     - .tags
   stage: test
@@ -81,6 +82,7 @@ Spotless Check:
 ####
 Spotbugs Main:
   extends:
+    - .ssh-key
     - .gradle
     - .tags
   stage: test
@@ -96,6 +98,7 @@ Spotbugs Main:
 ####
 Spotbugs Test:
   extends:
+    - .ssh-key
     - .gradle
     - .tags
   stage: test
@@ -115,7 +118,7 @@ Spotbugs Test:
 ####
 Unit Tests:
   extends:
-    - .fault-sections
+    - .ssh-key
     - .gradle
     - .tags
   stage: test
diff --git a/settings.gradle b/settings.gradle
index a58265b53087727b4d3b0ba8fa09b8150737e95c..5142f291b10285660b9de4d9f4edf7c31b924abc 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,11 @@
+plugins {
+  id "com.alexvasilkov.git-dependencies" version "2.0.1"
+}
+
 rootProject.name = 'nshmp-lib'
+
+git {
+  fetch ("git@code.usgs.gov:ghsc/nshmp/nshm-fault-sections.git", {
+    tag "v0.1"
+  })
+}
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/internal/NshmFaultSectionTests.java b/src/test/java/gov/usgs/earthquake/nshmp/internal/NshmFaultSectionTests.java
index a649b06b5a5d67958292c96a4085c0cfdf3b16a2..e7627266603ac099e4a724838d6d4d77907a4735 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/internal/NshmFaultSectionTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/internal/NshmFaultSectionTests.java
@@ -479,7 +479,7 @@ public class NshmFaultSectionTests {
   }
 
   private static Stream<Path> faultSections() throws IOException {
-    Path path = Paths.get("../nshm-fault-sections");
+    Path path = Paths.get("libs/nshm-fault-sections");
     FaultFinder finder = new FaultFinder();
     Files.walkFileTree(path, finder);
     return finder.paths.stream();