diff --git a/README.md b/README.md
index 2a6e601..c9ca236 100644
--- a/README.md
+++ b/README.md
@@ -15,29 +15,26 @@ A modern Java library for navigating GitHub repository commits programmatically
```xml
- edu.stanford.protege.commitnavigator
+ edu.stanford.protege
github-commit-navigator
- 2.0.0
+ 2.0.2
```
### Basic Usage
```java
-import edu.stanford.protege.commitnavigator.GitHubRepository;
import edu.stanford.protege.commitnavigator.GitHubRepositoryBuilderFactory;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import edu.stanford.protege.commitnavigator.CommitNavigatorBuilder;
-import edu.stanford.protege.commitnavigator.utils.CommitNavigator;
-import edu.stanford.protege.commitnavigator.model.CommitMetadata;
// Create repository coordinate from URL
-var coordinate = RepositoryCoordinates.createFromUrl("https://github.com/example/repo");
+var coordinate = BranchCoordinates.createFromUrl("https://github.com/example/repo");
// Create repository using factory pattern
var repository = GitHubRepositoryBuilderFactory.create(coordinate)
- .withPersonalAccessToken("your-token-here")
- .build();
+ .withPersonalAccessToken("your-token-here")
+ .build();
// Initialize the repository
repository.initialize();
@@ -73,7 +70,7 @@ repository.close();
```java
// Create repository coordinate for the repository and branch
-var coordinate = RepositoryCoordinates.createFromUrl("https://github.com/example/repo", "develop");
+var coordinate = BranchCoordinates.createFromUrl("https://github.com/example/repo", "develop");
// Configure repository with advanced options
var repository = GitHubRepositoryBuilderFactory.create(coordinate)
@@ -108,7 +105,7 @@ For public repositories, authentication is optional:
```java
// Create coordinate for public repository
-var coordinates = RepositoryCoordinates.createFromUrl("https://github.com/public/repo");
+var coordinates = BranchCoordinates.createFromUrl("https://github.com/public/repo");
// Create repository without authentication
var repository = GitHubRepositoryBuilderFactory.create(coordinates)
@@ -121,17 +118,17 @@ Filter commits to only include those that modified specific files using CommitNa
```java
// Configure file filters using List
-var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory("/path/to/local/directory")
+var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory(workingDirectory)
.fileFilters(List.of("src/main/java/Main.java", "README.md")) // Exact file paths
.build();
// Or using convenient varargs syntax
-var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory("/path/to/local/directory")
+var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory(workingDirectory)
.fileFilters("*.java", "**/*.md", "src/**/*.xml") // Glob patterns
.build();
// Or mixed patterns with varargs
-var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory("/path/to/local/directory")
+var commitNavigator = CommitNavigatorBuilder.forWorkingDirectory(workingDirectory)
.fileFilters("pom.xml", "*.java", "docs/**/*.md") // Mixed patterns
.build();
```
@@ -155,10 +152,10 @@ The library includes a CLI for quick repository analysis:
```bash
# Basic usage
-java -jar github-commit-navigator-2.0.0.jar https://github.com/user/repo
+java -jar github-commit-navigator-2.0.2.jar https://github.com/user/repo
# With authentication and filters
-java -jar github-commit-navigator-2.0.0.jar \
+java -jar github-commit-navigator-2.0.2.jar \
--token your-token \
--file-filter "*.java,*.md" \
--branch develop \
diff --git a/pom.xml b/pom.xml
index 15be834..dad8e35 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
edu.stanford.protege
github-commit-navigator
- 2.0.3
+ 2.1.0
jar
GitHub Commit Navigator Library
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilder.java b/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilder.java
index 33def28..64054df 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilder.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilder.java
@@ -3,7 +3,7 @@
import edu.stanford.protege.commitnavigator.config.AuthenticationConfig;
import edu.stanford.protege.commitnavigator.config.RepositoryConfig;
import edu.stanford.protege.commitnavigator.impl.GitHubRepositoryImpl;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import edu.stanford.protege.commitnavigator.utils.AuthenticationManager;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -37,8 +37,8 @@ public class GitHubRepositoryBuilder {
private final AuthenticationManager authManager;
public GitHubRepositoryBuilder(
- RepositoryCoordinates repositoryCoordinates, AuthenticationManager authManager) {
- this.configBuilder = RepositoryConfig.builder(repositoryCoordinates);
+ BranchCoordinates branchCoordinates, AuthenticationManager authManager) {
+ this.configBuilder = RepositoryConfig.builder(branchCoordinates);
this.authManager = Objects.requireNonNull(authManager, "Authentication manager cannot be null");
}
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderFactory.java b/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderFactory.java
index 8fd68f3..d96ea2a 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderFactory.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderFactory.java
@@ -1,6 +1,6 @@
package edu.stanford.protege.commitnavigator;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import edu.stanford.protege.commitnavigator.utils.AuthenticationManager;
import edu.stanford.protege.commitnavigator.utils.impl.AuthenticationManagerImpl;
import java.util.Objects;
@@ -33,15 +33,15 @@ public class GitHubRepositoryBuilderFactory {
*
The returned builder includes default implementations of {@link AuthenticationManager} and
* the supplied repository coordinates.
*
- * @param repositoryCoordinates the repository coordinate containing owner, repo, and branch
+ * @param branchCoordinates the repository coordinate containing owner, repo, and branch
* @return a pre-configured {@link GitHubRepositoryBuilder} for public repository access
* @throws NullPointerException if repositoryCoordinates is null
*/
- public static GitHubRepositoryBuilder create(RepositoryCoordinates repositoryCoordinates) {
- Objects.requireNonNull(repositoryCoordinates, "Repository coordinate cannot be null");
+ public static GitHubRepositoryBuilder create(BranchCoordinates branchCoordinates) {
+ Objects.requireNonNull(branchCoordinates, "Repository coordinate cannot be null");
var authManager = new AuthenticationManagerImpl();
- return new GitHubRepositoryBuilder(repositoryCoordinates, authManager);
+ return new GitHubRepositoryBuilder(branchCoordinates, authManager);
}
}
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/cli/GitHubNavigatorCli.java b/src/main/java/edu/stanford/protege/commitnavigator/cli/GitHubNavigatorCli.java
index 7e5a4c6..21cf7e3 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/cli/GitHubNavigatorCli.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/cli/GitHubNavigatorCli.java
@@ -2,7 +2,7 @@
import edu.stanford.protege.commitnavigator.CommitNavigatorBuilder;
import edu.stanford.protege.commitnavigator.GitHubRepositoryBuilderFactory;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import java.util.concurrent.Callable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,7 +90,7 @@ public static void main(String[] args) {
public Integer call() throws Exception {
try {
// Extract repository coordinate from URL
- var coordinate = RepositoryCoordinates.createFromUrl(repositoryUrl, branch);
+ var coordinate = BranchCoordinates.createFromUrl(repositoryUrl, branch);
// Create repositoryBuilder using factory pattern
var repositoryBuilder = GitHubRepositoryBuilderFactory.create(coordinate);
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/config/RepositoryConfig.java b/src/main/java/edu/stanford/protege/commitnavigator/config/RepositoryConfig.java
index a29cc5d..2338605 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/config/RepositoryConfig.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/config/RepositoryConfig.java
@@ -1,6 +1,6 @@
package edu.stanford.protege.commitnavigator.config;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import java.nio.file.Path;
import java.util.Objects;
import java.util.Optional;
@@ -108,15 +108,15 @@ public Optional getAuthConfig() {
/**
* Creates a new builder instance for the specified repository URL.
*
- * @param repositoryCoordinates the repository coordinate containing owner, repo, and branch
+ * @param branchCoordinates the repository coordinate containing owner, repo, and branch
* @return a new {@link Builder} instance
* @throws NullPointerException if repositoryUrl is null
*/
- public static Builder builder(RepositoryCoordinates repositoryCoordinates) {
+ public static Builder builder(BranchCoordinates branchCoordinates) {
return new Builder(
- repositoryCoordinates.repositoryUrl(),
- repositoryCoordinates.repositoryName(),
- repositoryCoordinates.branchName());
+ branchCoordinates.repositoryUrl(),
+ branchCoordinates.repositoryName(),
+ branchCoordinates.branchName());
}
/** Builder class for constructing {@link RepositoryConfig} instances. */
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/impl/GitHubRepositoryImpl.java b/src/main/java/edu/stanford/protege/commitnavigator/impl/GitHubRepositoryImpl.java
index a0ee35f..8865e9a 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/impl/GitHubRepositoryImpl.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/impl/GitHubRepositoryImpl.java
@@ -42,7 +42,7 @@
* var coordinates = RepositoryCoordinates.create("owner", "repository");
* var repository = GitHubRepositoryBuilderFactory.create(coordinates)
* .withPersonalAccessToken("ghp_xxxxxxxxxxxx")
- * .localCloneDirectory(Paths.get("/tmp/my-repo"))
+ * .localWorkingDirectory("/tmp/my-repo")
* .build();
*
* repository.initialize();
diff --git a/src/main/java/edu/stanford/protege/commitnavigator/model/RepositoryCoordinates.java b/src/main/java/edu/stanford/protege/commitnavigator/model/BranchCoordinates.java
similarity index 68%
rename from src/main/java/edu/stanford/protege/commitnavigator/model/RepositoryCoordinates.java
rename to src/main/java/edu/stanford/protege/commitnavigator/model/BranchCoordinates.java
index 0f75834..5e25242 100644
--- a/src/main/java/edu/stanford/protege/commitnavigator/model/RepositoryCoordinates.java
+++ b/src/main/java/edu/stanford/protege/commitnavigator/model/BranchCoordinates.java
@@ -1,19 +1,19 @@
package edu.stanford.protege.commitnavigator.model;
-public record RepositoryCoordinates(String ownerName, String repositoryName, String branchName) {
+public record BranchCoordinates(String ownerName, String repositoryName, String branchName) {
public static final String DEFAULT_BRANCH = "main";
- public static RepositoryCoordinates create(
+ public static BranchCoordinates create(
String ownerName, String repositoryName, String branchName) {
- return new RepositoryCoordinates(ownerName, repositoryName, branchName);
+ return new BranchCoordinates(ownerName, repositoryName, branchName);
}
- public static RepositoryCoordinates create(String ownerName, String repositoryName) {
+ public static BranchCoordinates create(String ownerName, String repositoryName) {
return create(ownerName, repositoryName, DEFAULT_BRANCH);
}
- public static RepositoryCoordinates createFromUrl(String repositoryUrl, String branchName) {
+ public static BranchCoordinates createFromUrl(String repositoryUrl, String branchName) {
// Remove protocol if present
var url = repositoryUrl.replaceFirst("^https?://github\\.com/", "");
// Remove .git suffix if present
@@ -32,7 +32,7 @@ public static RepositoryCoordinates createFromUrl(String repositoryUrl, String b
return create(ownerName, repositoryName, branchName);
}
- public static RepositoryCoordinates createFromUrl(String repositoryUrl) {
+ public static BranchCoordinates createFromUrl(String repositoryUrl) {
return createFromUrl(repositoryUrl, DEFAULT_BRANCH);
}
diff --git a/src/test/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderTest.java b/src/test/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderTest.java
index 777d128..96e65d8 100644
--- a/src/test/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderTest.java
+++ b/src/test/java/edu/stanford/protege/commitnavigator/GitHubRepositoryBuilderTest.java
@@ -3,14 +3,14 @@
import static org.junit.jupiter.api.Assertions.*;
import edu.stanford.protege.commitnavigator.config.AuthenticationConfig;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import java.nio.file.Paths;
import org.junit.jupiter.api.Test;
class GitHubRepositoryBuilderTest {
- private static final RepositoryCoordinates TEST_COORDINATE =
- RepositoryCoordinates.create("example", "repo");
+ private static final BranchCoordinates TEST_COORDINATE =
+ BranchCoordinates.create("example", "repo");
@Test
void testBuilderWithPersonalAccessToken() {
@@ -72,7 +72,7 @@ void testBuilderWithAllOptions() {
var token = "test-token";
var localPath = "/tmp/test-repo";
var branch = "develop";
- var coordinate = RepositoryCoordinates.create("example", "repo", branch);
+ var coordinate = BranchCoordinates.create("example", "repo", branch);
var navigator =
GitHubRepositoryBuilderFactory.create(coordinate)
@@ -92,7 +92,7 @@ void testBuilderWithAllOptions() {
@Test
void testBuilderWithoutAuthentication() {
- var publicRepoCoordinate = RepositoryCoordinates.create("example", "public-repo");
+ var publicRepoCoordinate = BranchCoordinates.create("example", "public-repo");
var navigator = GitHubRepositoryBuilderFactory.create(publicRepoCoordinate).build();
diff --git a/src/test/java/edu/stanford/protege/commitnavigator/config/RepositoryConfigTest.java b/src/test/java/edu/stanford/protege/commitnavigator/config/RepositoryConfigTest.java
index 53caeb8..bf55f35 100644
--- a/src/test/java/edu/stanford/protege/commitnavigator/config/RepositoryConfigTest.java
+++ b/src/test/java/edu/stanford/protege/commitnavigator/config/RepositoryConfigTest.java
@@ -2,7 +2,7 @@
import static org.junit.jupiter.api.Assertions.*;
-import edu.stanford.protege.commitnavigator.model.RepositoryCoordinates;
+import edu.stanford.protege.commitnavigator.model.BranchCoordinates;
import java.nio.file.Paths;
import org.junit.jupiter.api.Test;
@@ -10,7 +10,7 @@ class RepositoryConfigTest {
@Test
void testBuilderPattern() {
- var coordinate = RepositoryCoordinates.create("example", "repo", "develop");
+ var coordinate = BranchCoordinates.create("example", "repo", "develop");
var config =
RepositoryConfig.builder(coordinate)
@@ -27,7 +27,7 @@ void testBuilderPattern() {
@Test
void testDefaultValues() {
- var coordinate = RepositoryCoordinates.create("example", "repo");
+ var coordinate = BranchCoordinates.create("example", "repo");
var config = RepositoryConfig.builder(coordinate).build();
@@ -41,7 +41,7 @@ void testDefaultValues() {
@Test
void testAuthenticationConfig() {
- var coordinate = RepositoryCoordinates.create("example", "repo");
+ var coordinate = BranchCoordinates.create("example", "repo");
var authConfig = AuthenticationConfig.personalAccessToken("token").build();
var config = RepositoryConfig.builder(coordinate).authConfig(authConfig).build();