Skip to content

Release/v1.5.3#28

Open
supasympa wants to merge 13 commits into
mainfrom
release/v1.5.3
Open

Release/v1.5.3#28
supasympa wants to merge 13 commits into
mainfrom
release/v1.5.3

Conversation

@supasympa
Copy link
Copy Markdown
Contributor

No description provided.

supasympa added 13 commits May 7, 2026 21:12
Prevent 422 'Path could not be resolved' errors when creating review
comments on files that don't exist in the PR's diff (e.g., deleted files).

- Add ListPRFiles() to fetch PR's changed files
- Filter buildReviewComments() to only include files present in PR diff
- Add tests for groupFindings and buildReviewComments
- TestReport_RetryWithoutCommentsOnPositionError: verifies retry logic
- TestReport_FallsBackToStickyCommentWhenBothReviewAttemptsFail
- TestReport_SuccessfulReviewOnFirstTry
- TestReport_UsesPRFilesFilter

Also converts GitHubReporter.client to use interface for testability.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Acig Verdict: PASS

Risk: low | Cost: $0.0007 | Duration: 33905ms

Decision: pass | Risk: low | Findings: 0 blocking, 0 high, 0 medium, 0 low, 8 info | Cost: $0.0007

Findings

[ℹ️ INFO] Workflow uses vars instead of secrets for ACIG_APP_ID

  • Critic: risk_classifier
  • Location: .github/workflows/acig.yml:4

The GitHub Actions workflow now references a repository variable for the app ID, reducing the risk of accidental secret exposure.

[ℹ️ INFO] Added runtime check for ACIG version retrieval

  • Critic: risk_classifier
  • Location: .github/workflows/acig.yml:15

The workflow now verifies that the ACIG version was successfully fetched before proceeding, preventing silent failures.

[ℹ️ INFO] New GitHubClient interface

  • Critic: risk_classifier
  • Location: internal/reporters/github.go:12

Introduces an abstraction for GitHub operations, improving testability but adding a small surface for misuse if not implemented correctly.

[ℹ️ INFO] ListPRFiles method added to client

  • Critic: risk_classifier
  • Location: internal/githubclient/review.go:1

Provides a way to retrieve PR files; no security impact but requires proper error handling in callers.

[ℹ️ INFO] Review comments filtered by PR files

  • Critic: risk_classifier
  • Location: internal/reporters/github.go:55

The reporter now skips findings not present in the PR, reducing noise but potentially missing issues if file list is incomplete.

[ℹ️ INFO] Retry logic for review creation

  • Critic: risk_classifier
  • Location: internal/reporters/github.go:38

If inline comment creation fails due to position errors, the reporter retries without comments, improving robustness.

[ℹ️ INFO] Added unit tests for reporter behavior

  • Critic: risk_classifier
  • Location: internal/reporters/github_report_test.go:1

Tests cover retry logic and PR file filtering, ensuring correctness but adding no new risk.

[ℹ️ INFO] Makefile lint and test target added

  • Critic: risk_classifier
  • Location: Makefile:1

Introduces a check target that runs lint and tests, encouraging code quality but not affecting runtime security.

Critic Results

Critic Model Findings Cost Duration
perf_smell qwen3-coder:480b 0 $0.0002 830ms
security_smell qwen3-coder:480b 0 $0.0002 1171ms
risk_classifier gpt-oss:20b 8 $0.0001 6326ms
style_conformance gpt-oss:20b 0 $0.0001 12721ms
test_coverage_smell gpt-oss:20b 0 $0.0001 12857ms

Generated by acig • SHA: 48b2fd3

Verdict JSON
{"schema_version":"1","repo":"https://github.com/helloodokai/acig","sha":"48b2fd3ccd0077ffbedcb2d25ef006ab72f50572","base_sha":"main","risk":"low","decision":"pass","summary":"Decision: pass | Risk: low | Findings: 0 blocking, 0 high, 0 medium, 0 low, 8 info | Cost: $0.0007","findings":[{"critic":"risk_classifier","severity":"info","title":"Workflow uses vars instead of secrets for ACIG_APP_ID","detail":"The GitHub Actions workflow now references a repository variable for the app ID, reducing the risk of accidental secret exposure.","file":".github/workflows/acig.yml","line_start":4,"line_end":12},{"critic":"risk_classifier","severity":"info","title":"Added runtime check for ACIG version retrieval","detail":"The workflow now verifies that the ACIG version was successfully fetched before proceeding, preventing silent failures.","file":".github/workflows/acig.yml","line_start":15,"line_end":22},{"critic":"risk_classifier","severity":"info","title":"New GitHubClient interface","detail":"Introduces an abstraction for GitHub operations, improving testability but adding a small surface for misuse if not implemented correctly.","file":"internal/reporters/github.go","line_start":12,"line_end":34},{"critic":"risk_classifier","severity":"info","title":"ListPRFiles method added to client","detail":"Provides a way to retrieve PR files; no security impact but requires proper error handling in callers.","file":"internal/githubclient/review.go","line_start":1,"line_end":20},{"critic":"risk_classifier","severity":"info","title":"Review comments filtered by PR files","detail":"The reporter now skips findings not present in the PR, reducing noise but potentially missing issues if file list is incomplete.","file":"internal/reporters/github.go","line_start":55,"line_end":70},{"critic":"risk_classifier","severity":"info","title":"Retry logic for review creation","detail":"If inline comment creation fails due to position errors, the reporter retries without comments, improving robustness.","file":"internal/reporters/github.go","line_start":38,"line_end":53},{"critic":"risk_classifier","severity":"info","title":"Added unit tests for reporter behavior","detail":"Tests cover retry logic and PR file filtering, ensuring correctness but adding no new risk.","file":"internal/reporters/github_report_test.go","line_start":1,"line_end":120},{"critic":"risk_classifier","severity":"info","title":"Makefile lint and test target added","detail":"Introduces a `check` target that runs lint and tests, encouraging code quality but not affecting runtime security.","file":"Makefile","line_start":1,"line_end":10}],"critic_results":[{"critic":"perf_smell","model":"qwen3-coder:480b","findings":[],"cost_usd":0.00019878,"duration_ms":830,"tokens_in":3274,"tokens_out":13},{"critic":"security_smell","model":"qwen3-coder:480b","findings":[],"cost_usd":0.00020082000000000002,"duration_ms":1171,"tokens_in":3308,"tokens_out":13},{"critic":"risk_classifier","model":"gpt-oss:20b","findings":[{"critic":"risk_classifier","severity":"info","title":"Workflow uses vars instead of secrets for ACIG_APP_ID","detail":"The GitHub Actions workflow now references a repository variable for the app ID, reducing the risk of accidental secret exposure.","file":".github/workflows/acig.yml","line_start":4,"line_end":12},{"critic":"risk_classifier","severity":"info","title":"Added runtime check for ACIG version retrieval","detail":"The workflow now verifies that the ACIG version was successfully fetched before proceeding, preventing silent failures.","file":".github/workflows/acig.yml","line_start":15,"line_end":22},{"critic":"risk_classifier","severity":"info","title":"New GitHubClient interface","detail":"Introduces an abstraction for GitHub operations, improving testability but adding a small surface for misuse if not implemented correctly.","file":"internal/reporters/github.go","line_start":12,"line_end":34},{"critic":"risk_classifier","severity":"info","title":"ListPRFiles method added to client","detail":"Provides a way to retrieve PR files; no security impact but requires proper error handling in callers.","file":"internal/githubclient/review.go","line_start":1,"line_end":20},{"critic":"risk_classifier","severity":"info","title":"Review comments filtered by PR files","detail":"The reporter now skips findings not present in the PR, reducing noise but potentially missing issues if file list is incomplete.","file":"internal/reporters/github.go","line_start":55,"line_end":70},{"critic":"risk_classifier","severity":"info","title":"Retry logic for review creation","detail":"If inline comment creation fails due to position errors, the reporter retries without comments, improving robustness.","file":"internal/reporters/github.go","line_start":38,"line_end":53},{"critic":"risk_classifier","severity":"info","title":"Added unit tests for reporter behavior","detail":"Tests cover retry logic and PR file filtering, ensuring correctness but adding no new risk.","file":"internal/reporters/github_report_test.go","line_start":1,"line_end":120},{"critic":"risk_classifier","severity":"info","title":"Makefile lint and test target added","detail":"Introduces a `check` target that runs lint and tests, encouraging code quality but not affecting runtime security.","file":"Makefile","line_start":1,"line_end":10}],"cost_usd":0.00006408999999999999,"duration_ms":6326,"tokens_in":3253,"tokens_out":1052},{"critic":"style_conformance","model":"gpt-oss:20b","findings":null,"cost_usd":0.00009353,"duration_ms":12721,"tokens_in":3209,"tokens_out":2048},{"critic":"test_coverage_smell","model":"gpt-oss:20b","findings":null,"cost_usd":0.00009366999999999999,"duration_ms":12857,"tokens_in":3223,"tokens_out":2048}],"total_cost_usd":0.00065089,"total_duration_ms":33905,"budget_remaining_usd":0.24934911,"generated_at":"2026-05-07T23:16:02.431407601Z"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant