Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Codecov Configuration for RepForge (Devasy/RepForge)
codecov:
require_ci_to_pass: yes

coverage:
precision: 2
round: down
range: "70...100"

status:
project:
default:
target: auto
threshold: 1%
patch:
default:
target: auto

ignore:
- "**/*.g.dart"
- "**/*.freezed.dart"
- "workout-logger/test/**/*"
22 changes: 18 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,31 @@ name: Test

on:
push:
branches: [main]
branches:
- main
- 'r[0-9]+.[0-9]+.*'
pull_request:
branches: [main]
branches:
- main
- 'r[0-9]+.[0-9]+.*'
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
test:
name: Analyze & Test
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Set up Flutter
id: flutter-action
Expand All @@ -28,13 +39,14 @@ jobs:
pub-cache-key: "flutter-pub-:os:-:channel:-:version:-:arch:-${{ hashFiles('workout-logger/pubspec.lock') }}"

- name: Install dependencies
if: steps.flutter-action.outputs.PUB-CACHE-HIT != 'true'
if: steps.flutter-action.outputs.CACHE-HIT != 'true'
working-directory: ./workout-logger
run: flutter pub get
Comment on lines +42 to 44

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== workflow excerpt =="
sed -n '1,140p' .github/workflows/test.yml 2>/dev/null || true

echo
echo "== related files =="
git ls-files | rg '(^|/)(pubspec\.yaml|\.dart_tool/package_config\.json|workflows/test\.yml)$' || true

echo
echo "== pubspec/package_config references =="
rg -n "pubspec|package_config|flutter pub get|CACHE-HIT|flutter-analyz|flutter test" .github workout-logger pubspec.yaml 2>/dev/null || true

echo
echo "== git status =="
git status --short

Repository: Devasy/RepForge

Length of output: 3559


🌐 Web query:

subosito flutter-action flutter analyze test cache true outputs CACHE-HIT

💡 Result:

The subosito/flutter-action GitHub Action provides CACHE-HIT and PUB-CACHE-HIT outputs that allow you to determine whether the Flutter SDK or pub dependencies were successfully retrieved from the cache [1][2][3]. These outputs are available starting from version v2.21.0 [2]. They directly reflect the cache-hit output from the underlying actions/cache steps [4][5][3]. Key details regarding these outputs: - CACHE-HIT: Indicates whether the Flutter SDK cache was a hit [1][3]. - PUB-CACHE-HIT: Indicates whether the pub dependencies cache was a hit [1][3]. - Behavior: These outputs return 'true' if there is an exact match for the cache key, and an empty string if there is a cache miss [4][6][5]. Example usage: You can use these outputs to conditionally execute steps in your workflow, such as skipping dependency installation when a cache hit occurs [7][3]: steps: - name: Set up Flutter uses: subosito/flutter-action@v2 id: flutter-action with: channel: stable cache: true - name: Conditionally run dependencies installation if: steps.flutter-action.outputs.PUB-CACHE-HIT!= 'true' run: flutter pub get - name: Continue with build run: flutter build apk Note that you must provide an id to the flutter-action step (e.g., id: flutter-action) to reference these outputs in subsequent steps [7][3].

Citations:


🌐 Web query:

site:github.com/subosito/flutter-action action.yaml CACHE-HIT PUB-CACHE-HIT cache

💡 Result:

In the context of the subosito/flutter-action GitHub Action, CACHE-HIT and PUB-CACHE-HIT are output variables that provide information about the status of the Flutter SDK and Dart pub dependencies caches, respectively [1][2]. These outputs are defined in the action's configuration (action.yaml) to allow users to conditionally execute steps based on whether a cache was restored successfully [1][2]. Specifically: CACHE-HIT: Indicates whether the Flutter SDK cache was a hit (returns 'true' if there is an exact match for the cache key) [1]. PUB-CACHE-HIT: Indicates whether the Dart pub dependencies cache was a hit (returns 'true' if there is an exact match for the cache key) [1]. These values are sourced directly from the cache-hit output of the underlying actions/cache step used within the action [3][4]. They are commonly used in workflow YAML files to skip redundant installation or setup steps, such as bootstrapping dependencies, when a valid cache already exists [2][5]. Example usage in a workflow: - name: Set up Flutter uses: subosito/flutter-action@v2 id: flutter-action with: cache: true pub-cache: true - name: Conditionally run setup if: steps.flutter-action.outputs.PUB-CACHE-HIT!= 'true' run: dart pub get

Citations:


🌐 Web query:

site:docs.dart.dev packages flutter test analyze package_config.json pub cache

💡 Result:

Relevant official Dart/Flutter documentation:

  • Packages: use pubspec.yaml and dart pub get to resolve dependencies. [1]
  • Flutter package commands: use flutter pub, flutter analyze, and flutter test; Flutter recommends these instead of the equivalent Dart commands in Flutter projects. [2]
  • Static analysis: dart analyze [DIRECTORY|FILE] analyzes Dart source code. [3]
  • Testing: Flutter tests typically live under test/; run them with flutter test. [4]
  • package_config.json: Pub generates .dart_tool/package_config.json, mapping package names to their locations; workspaces use one shared file. [5]
  • Pub cache: recent Dart versions include dart pub cache gc to remove packages no longer referenced by current projects. [6]

The original query returned no exact docs.dart.dev match; current documentation is primarily on dart.dev and docs.flutter.dev.


Run dependency resolution when the Flutter SDK cache hits.

CACHE-HIT reports whether the Flutter SDK cache was restored. This skips flutter pub get even when the project pub cache was not restored, leaving .dart_tool/package_config.json unresolved for flutter analyze and flutter test. Check steps.flutter-action.outputs.PUB-CACHE-HIT instead, or always run flutter pub get for clean runners.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/test.yml around lines 42 - 44, Update the condition
guarding the flutter pub get step to use
steps.flutter-action.outputs.PUB-CACHE-HIT rather than CACHE-HIT, so dependency
resolution runs when the project pub cache was not restored while preserving the
existing working-directory and command.


- name: Analyze
working-directory: ./workout-logger
run: |
set -o pipefail
# Only fail on errors, ignore warnings and info messages
flutter analyze --no-fatal-infos --no-fatal-warnings | tee analyze_output.txt

Expand All @@ -53,3 +65,5 @@ jobs:
with:
files: workout-logger/coverage/lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
slug: Devasy/RepForge

Comment on lines +68 to +69

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the added empty line.

The configured YAML linter rejects the empty line after slug.

🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 69-69: too many blank lines (1 > 0)

(empty-lines)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/test.yml around lines 68 - 69, Remove the empty line
immediately following the slug entry in the workflow YAML, leaving the slug
configuration and surrounding formatting otherwise unchanged.

Source: Linters/SAST tools

9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,12 @@ repforge_backup_*.json

# Claude Code project memory & session files
.claude/

# Hive test databases and temporary directories
*.hive
tmp_hive_*/
**/tmp_hive_*/


# Subagent-driven-development scratch workspace
.superpowers/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ RepForge is licensed under the [Apache License 2.0](LICENSE).

**Devasy Patel**
- Email: patel.devasy.23@gmail.com
- GitHub: [@Devasy23](https://github.com/Devasy23)
- GitHub: [@Devasy](https://github.com/Devasy)

---
<div align="center">
Expand Down
Loading
Loading