From 722e4c7fe4872d0237857f5bfd088617cf0ba2dc Mon Sep 17 00:00:00 2001 From: Martin Schaef Date: Mon, 10 Oct 2022 08:43:56 -0400 Subject: [PATCH 1/2] update expected results --- .github/workflows/self-test-and-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/self-test-and-release.yml b/.github/workflows/self-test-and-release.yml index bb9f92c..70dda88 100644 --- a/.github/workflows/self-test-and-release.yml +++ b/.github/workflows/self-test-and-release.yml @@ -64,7 +64,7 @@ jobs: if: steps.iam-role.outcome == 'success' shell: bash env: - EXPECTED: 102 + EXPECTED: 103 run: | [[ $(jq -r '.runs[0].results[].ruleId' code-guru/recommendations.sarif.json | wc -l) -eq $EXPECTED ]] || { echo "Expected $EXPECTED recommendations but got $(jq -r '.runs[0].results[].ruleId' code-guru/recommendations.sarif.json | wc -l)"; exit 1; } From 860ef50b6912ac424ac2542b5912ee81986d2fcf Mon Sep 17 00:00:00 2001 From: Martin Schaef Date: Mon, 10 Oct 2022 09:12:56 -0400 Subject: [PATCH 2/2] adding workaround for all-zero commit --- .../gurureviewercli/adapter/GitAdapter.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/amazonaws/gurureviewercli/adapter/GitAdapter.java b/src/main/java/com/amazonaws/gurureviewercli/adapter/GitAdapter.java index ac252d7..d27e563 100644 --- a/src/main/java/com/amazonaws/gurureviewercli/adapter/GitAdapter.java +++ b/src/main/java/com/amazonaws/gurureviewercli/adapter/GitAdapter.java @@ -30,6 +30,10 @@ */ public final class GitAdapter { + private static final String GITHUB_UNKNOWN_COMMIT = "0000000000000000000000000000000000000000"; + // this is the sha for an empty commit, so any diff against this will return the full repo content. + private static final String GITHUB_EMPTY_COMMIT_SHA = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"; + @Nonnull public static GitMetaData getGitMetaData(final Configuration config, final Path pathToRepo) throws IOException { val gitDir = pathToRepo.toRealPath().resolve(".git"); @@ -122,12 +126,16 @@ private static Collection getChangedFiles(final Repository repository) thr private static boolean validateCommits(final Configuration config, final Repository repo) throws GitAPIException { + String beforeCommitSha = config.getBeforeCommit(); + if (GITHUB_UNKNOWN_COMMIT.equals(config.getBeforeCommit())) { + beforeCommitSha = GITHUB_EMPTY_COMMIT_SHA; + } - val beforeTreeIter = treeForCommitId(repo, config.getBeforeCommit()); + val beforeTreeIter = treeForCommitId(repo, beforeCommitSha); val afterTreeIter = treeForCommitId(repo, config.getAfterCommit()); // Resolve git constants, such as HEAD^^ to the actual commit hash - config.setBeforeCommit(resolveSha(repo, config.getBeforeCommit())); + config.setBeforeCommit(resolveSha(repo, beforeCommitSha)); config.setAfterCommit(resolveSha(repo, config.getAfterCommit())); val diffEntries = new Git(repo).diff().setOldTree(beforeTreeIter).setNewTree(afterTreeIter).call(); @@ -135,7 +143,6 @@ private static boolean validateCommits(final Configuration config, final Reposit throw new GuruCliException(ErrorCodes.GIT_EMPTY_DIFF, String.format("No difference between {} and {}", beforeTreeIter, afterTreeIter)); } - return true; }