Skip to content

chore: remove experimental gha (GitHub Actions) executor#1983

Merged
yohamta0 merged 2 commits into
mainfrom
chore/remove-gha-executor
Apr 10, 2026
Merged

chore: remove experimental gha (GitHub Actions) executor#1983
yohamta0 merged 2 commits into
mainfrom
chore/remove-gha-executor

Conversation

@yohamta0

@yohamta0 yohamta0 commented Apr 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Removes the experimental gha step executor (aliases: github_action, github-action) and its nektos/act integration
  • Cleans up executor registration, JSON schema definitions, related tests, documentation/skill references, and deletes the dedicated step-type docs page in the separate docs repo
  • go mod tidy drops github.com/nektos/act and ~20 transitive deps (docker/cli, moby/go-archive, shellquote, etc.)

Files changed

  • Deleted internal/runtime/builtin/gha/ (package) and internal/intg/gha_test.go
  • internal/runtime/builtin/builtin.go: removed blank import
  • internal/core/spec/{step.go,step_test.go}, internal/core/step.go: removed gha/github_action/github-action from capability registration, test cases, and doc comments
  • internal/cmn/schema/dag.schema.json: removed ghaExecutorConfig definition, the if/then branches that wired it to the three type aliases, and the enum entries
  • skills/dagu/references/executors.md: removed ## gha section
  • go.mod / go.sum: pruned unused deps

Test plan

  • go build ./...
  • go test ./internal/core/spec/... ./internal/cmn/schema/... ./internal/runtime/builtin/...
  • JSON schema validates as well-formed JSON

Summary by CodeRabbit

Release Notes

  • Removed Features

    • GitHub Actions executor support has been removed. Workflows previously using the gha executor type will no longer execute.
  • Chores

    • Optimized dependencies by removing unused modules and reclassifying internal dependencies for improved maintainability.
    • Updated documentation to reflect supported executor types.

Drops the experimental `gha` step executor and its `github_action` /
`github-action` aliases, the nektos/act integration, associated JSON
schema definitions, and all related documentation and skill references.
`go mod tidy` prunes nektos/act and ~20 transitive dependencies.
@coderabbitai

coderabbitai Bot commented Apr 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 04584e70-3527-4f12-828a-09e158d719ab

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The GitHub Actions (gha) executor has been completely removed from the codebase, including its runtime implementation, configuration schema, validation rules, tests, and documentation. This affects the dependency graph, core specifications, schema validation, and related test suites.

Changes

Cohort / File(s) Summary
GitHub Actions Executor Implementation
internal/runtime/builtin/gha/executor.go, internal/runtime/builtin/gha/config.go
Removed the complete GitHub Actions executor implementation (554 lines) that used nektos/act to execute GitHub Actions locally, and removed its configuration schema registration (46 lines).
Executor Registration and Imports
internal/runtime/builtin/builtin.go
Removed the blank import of the gha package, eliminating executor initialization side effects.
Schema and Specifications
internal/cmn/schema/dag.schema.json, internal/core/spec/step.go
Removed gha executor option from JSON schema validation (including ghaExecutorConfig definition), removed gha/github_action aliases from executorType enum, and updated executor type comment to exclude gha.
Specification Structure
internal/core/step.go
Updated comment on Step.Params field to remove GitHub Actions example reference.
Test Coverage
internal/core/spec/step_test.go, internal/intg/gha_test.go, internal/runtime/builtin/gha/executor_test.go
Removed GitHub Actions executor aliases from test setup (step_test.go), deleted GitHub Actions integration test with git repository setup (gha_test.go), and removed all executor unit tests covering runner configuration and helper functions (executor_test.go, 421 lines).
Dependencies
go.mod
Removed multiple unused dependencies including github.com/nektos/act, Docker-related modules, and others; reclassified github.com/sirupsen/logrus from direct to indirect requirement.
Documentation
skills/dagu/references/executors.md
Removed the complete GitHub Actions executor documentation section including description, example YAML, and configuration field references.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: removal of the experimental GitHub Actions executor, matching the PR's primary objective.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/remove-gha-executor

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
internal/cmn/schema/dag.schema.json (1)

1410-1437: ⚠️ Potential issue | 🟡 Minor

Align this step.params description with the current loader.

Line 1437 still mentions a run field that this step schema doesn't define, and buildStepParamsField in internal/core/spec/step.go currently converts parsed step params into map[string]string before storing them on core.Step. The “rich types are preserved” sentence therefore overstates the current behavior.

📝 Suggested wording
-          "description": "Parameters for the step. Supports three formats: 1) String format: space-separated positional parameters (e.g., 'arg1 arg2') accessible as $1, $2. 2) Array format: named parameters as key-value objects preserving rich types (numbers, booleans, nested objects). 3) Object format: named parameters as simple key-value pairs. For sub-DAG execution (when 'call' or 'run' is specified), these are passed to the sub DAG and accessible as ${KEY}. Rich types are preserved when passing to executors that support them."
+          "description": "Parameters for the step. Supports three formats: 1) String format: space-separated positional parameters (e.g., 'arg1 arg2') accessible as $1, $2. 2) Array format: named parameters as key-value objects. 3) Object format: named parameters as key-value pairs. For sub-DAG execution (when 'call' is specified), these are passed to the sub DAG and accessible as ${KEY}."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cmn/schema/dag.schema.json` around lines 1410 - 1437, Update the
"params" description in the step schema to match the loader behavior: remove any
mention of a non-existent "run" field, and change the sentence claiming "Rich
types are preserved" to state that parsed params are converted to string map
form (via buildStepParamsField in internal/core/spec/step.go) and stored on
core.Step as map[string]string, so rich types are not preserved when the loader
processes step params. Reference the "params" schema entry and the
buildStepParamsField/core.Step symbols when making the wording change.
🧹 Nitpick comments (1)
internal/core/spec/step.go (1)

96-97: Make this executor list explicitly non-exhaustive.

Line 96 still reads like a full set, but the schema allows many more executor types. Adding e.g. or pointing to the canonical schema/registry will keep this comment from drifting again.

📝 Suggested wording
-	// Type specifies the executor type (ssh, http, jq, mail, docker, archive).
+	// Type specifies the executor type (e.g. ssh, http, jq, mail, docker, archive).
+	// See internal/cmn/schema/dag.schema.json#/definitions/executorType for the full set.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/core/spec/step.go` around lines 96 - 97, Update the comment on the
Step.Type field to indicate the executor list is non-exhaustive (e.g. replace
"ssh, http, jq, mail, docker, archive" with "e.g. ssh, http, jq, mail, docker,
archive" or add "and others" and/or a pointer to the canonical schema/registry)
so the Type string field's doc clarifies that additional executor types are
allowed; modify the comment above the Type field (symbol: Type in the Step
struct) to include "e.g." or a registry link and/or the phrase "non-exhaustive"
to prevent future drift.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@internal/cmn/schema/dag.schema.json`:
- Around line 1410-1437: Update the "params" description in the step schema to
match the loader behavior: remove any mention of a non-existent "run" field, and
change the sentence claiming "Rich types are preserved" to state that parsed
params are converted to string map form (via buildStepParamsField in
internal/core/spec/step.go) and stored on core.Step as map[string]string, so
rich types are not preserved when the loader processes step params. Reference
the "params" schema entry and the buildStepParamsField/core.Step symbols when
making the wording change.

---

Nitpick comments:
In `@internal/core/spec/step.go`:
- Around line 96-97: Update the comment on the Step.Type field to indicate the
executor list is non-exhaustive (e.g. replace "ssh, http, jq, mail, docker,
archive" with "e.g. ssh, http, jq, mail, docker, archive" or add "and others"
and/or a pointer to the canonical schema/registry) so the Type string field's
doc clarifies that additional executor types are allowed; modify the comment
above the Type field (symbol: Type in the Step struct) to include "e.g." or a
registry link and/or the phrase "non-exhaustive" to prevent future drift.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d0b56ee9-5e28-4fe5-962b-1063a5df6857

📥 Commits

Reviewing files that changed from the base of the PR and between c8ed7c1 and 199f309.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (11)
  • go.mod
  • internal/cmn/schema/dag.schema.json
  • internal/core/spec/step.go
  • internal/core/spec/step_test.go
  • internal/core/step.go
  • internal/intg/gha_test.go
  • internal/runtime/builtin/builtin.go
  • internal/runtime/builtin/gha/config.go
  • internal/runtime/builtin/gha/executor.go
  • internal/runtime/builtin/gha/executor_test.go
  • skills/dagu/references/executors.md
💤 Files with no reviewable changes (6)
  • internal/runtime/builtin/builtin.go
  • skills/dagu/references/executors.md
  • internal/runtime/builtin/gha/config.go
  • internal/intg/gha_test.go
  • internal/runtime/builtin/gha/executor.go
  • internal/runtime/builtin/gha/executor_test.go

@yohamta0 yohamta0 merged commit ca6898a into main Apr 10, 2026
6 checks passed
@yohamta0 yohamta0 deleted the chore/remove-gha-executor branch April 10, 2026 14:02
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