CI/CD Integration
IssuePit can run GitHub Actions workflows locally using nektos/act, without pushing to GitHub. This lets you trigger CI/CD pipelines directly from IssuePit and view the results alongside your issues.
How it works
- IssuePit watches your linked Git repository for new commits.
- When a commit arrives (or you trigger a run manually),
IssuePit.CiCdClientruns the repository’s.github/workflows/files locally usingact. - Job status, logs, and artifacts are streamed back to the IssuePit UI in real time.
Setting Up CI/CD
1. Link a Git repository to your project
See Projects → Linking a Git Repository.
2. Configure the runner image
- Open your project.
- Go to Project → Settings → CI/CD.
- Under Runner Image, choose the Docker image that
actwill use to execute workflow jobs.
The default image is ghcr.io/issuepit/helper-act:latest which includes Docker CLI, act, and actionlint. You can also configure a default at the organisation level under Organisation → Settings → CI/CD.
3. Trigger a run
CI/CD runs start automatically when new commits are detected. You can also trigger one manually:
- Go to Project → CI/CD.
- Click Trigger Run.
- Select the branch or commit and the event type (e.g.
push,workflow_dispatch). - Click Run.
Viewing Run Results
Navigate to Project → Runs (or the global Runs page in the sidebar) to see all CI/CD runs. Click any run to open the detail view showing:
- Job graph — a visual DAG of all jobs with status indicators (queued, running, success, failure)
- Logs — real-time streaming logs per step, with search support
- Artifacts — downloadable files produced by workflow steps
- Matrix jobs — expanded matrix strategy runs displayed individually
Tip: Use the Slim mode toggle (top-right of the run page) to collapse the job graph and focus on the log output.
Concurrent Job Limits
By default, IssuePit limits CI/CD to 4 concurrent jobs per organisation. To change this:
- Go to Organisation → Settings → CI/CD.
- Update Max Concurrent Jobs.
You can also override the limit per project under Project → Settings → CI/CD.
Caching
IssuePit provides persistent package caching to speed up builds:
- npm packages —
node_modulesare cached between runs - NuGet packages — .NET restore packages are cached between runs
Caching is enabled by default when running via the helper-act image and requires no extra configuration.
Action Cache & Offline Mode
act downloads GitHub Actions from the marketplace on first use. IssuePit can cache them locally so subsequent runs do not require internet access. You can also reroute actions/checkout and similar actions to a local mirror.
Configure via environment variables in your docker-compose.yml:
| Variable | Description |
|---|---|
CiCd__ActionCachePath | Host path for the local act action cache |
CiCd__ActImage | Default runner image passed to act via -P flags |
Skipping Steps
IssuePit passes --skip-step flags to act so you can disable specific workflow steps without modifying the workflow files themselves. This removes the need for if: github.event_name != 'act' guards on every push or deploy step.
Configuring skip steps in the UI
- Go to Project → Settings → CI/CD (or Organisation → Settings → CI/CD for a shared default).
- Scroll to Skip Steps.
- Enter one entry per line:
- A bare step name (e.g.
deploy) skips that step in every job. - A
job-id:step-namepair (e.g.build:upload-to-s3) skips the step only within the named job.

- A bare step name (e.g.
- Use the wizard to load steps from recent runs automatically — click “Use wizard (auto-complete from recent runs)”, check the steps you want to skip, then click Apply.
- Click Save CI/CD Config.
Project vs. organisation scope
| Level | Effect |
|---|---|
| Project | Applies only to that project’s runs |
| Organisation | Default for all projects in the org (project setting overrides it) |
If neither is set, no steps are skipped. The project value (when set) completely replaces the org default — it does not merge.
Config-repo (skipSteps field)
skipSteps can also be set in the config repository to manage it as infrastructure-as-code:
// orgs/my-org.json5 or projects/my-project.json5
{
// One entry per line (\n separator in JSON strings)
"skipSteps": "deploy\nbuild:upload-to-s3\nNotify Slack"
}
Pass workflow secrets and environment variables to a CI/CD run:
- Open a CI/CD run detail page.
- Click Advanced Options (or use the options when triggering a new run).
- Add key–value pairs under Secrets and Environment Variables.
Secrets are injected into act as --secret arguments and are never stored persistently.
Helper Containers
IssuePit ships pre-built helper container images for CI/CD agent use:
| Image | Contents |
|---|---|
ghcr.io/issuepit/helper-act | Docker CLI + act + actionlint |
ghcr.io/issuepit/helper-opencode-act | helper-act + opencode for combined agent/CI/CD runs |
See Helper Containers → for details.
Test History
Every CI/CD run that produces a .trx artifact automatically has its test results stored in the IssuePit database. The Test History page (Project → Runs → Test History) lets you analyse this data over time.
See Projects → Test History for full documentation.