First, look in three places
- The job summary. Open the run in Actions. It lists every feature, whether it ran or was skipped and why (“not configured”, or “does not handle this event”), every finding, every change, and anything skipped under Restricted access.
- The
smartcloud / configcheck. Every key smartcloud ignored in your config or a preset is a warning here, naming the file and the key. smartcloud doctor. Runsmartcloud doctor --repo owner/nameon your machine. It checks the token, the config and presets, private actions, and the secrets and variables your workflows read, and prints one line per check.
smartcloud dry-run or set the action’s dryRun: true input.
The run fails or does nothing
"no smartcloud config in owner/name: looked for ..."
"no smartcloud config in owner/name: looked for ..."
.github/smartcloud.yml (or .yaml, or a v1 .github/config.json) to the default branch first. To read it from elsewhere, set the action’s config (path) or configRef (branch, tag or commit) input.The job summary says "smartcloud does not act on ... events"
The job summary says "smartcloud does not act on ... events"
release or star. That is a clean no-op, not a failure. See which events run which features.A feature never runs
A feature never runs
- Its section is in the config. A feature with no section does not run. For example, stale needs a
stale:section, and commands needscommands: {}at least. - The workflow listens for its event. Stale and lock run only on
scheduleandworkflow_dispatch. Commands needissue_comment. Backports need theclosedpull request type. Settings and sync run onpush,scheduleandworkflow_dispatch. - The action’s
featuresinput does not leave it out.
I changed the config in a pull request, but the run ignores it
I changed the config in a pull request, but the run ignores it
smartcloud dry-run --repo owner/name --pr 42 --config .github/smartcloud.yml locally.The run fails, but every check looks fine
The run fails, but every check looks fine
"... is not valid YAML or JSON" or "expected a mapping at the top level"
"... is not valid YAML or JSON" or "expected a mapping at the top level"
* or contains : needs quotes, for example condition: 'docs/**'. smartcloud validate points at the line.The run was cancelled after a long time
The run was cancelled after a long time
required.timeout minutes (60 by default) for the other checks. Set the job’s timeout-minutes above that, 75 in the examples.Tokens and access
The run says it "ran with restricted access"
The run says it "ran with restricted access"
- a pull request from a fork, or Dependabot: always restricted, whatever token the workflow passes. Expected; nothing to fix.
- the workflow token, without an app or access token: pass a GitHub App token as
GITHUB_TOKENif you need settings, sync or private presets. - GitHub rejected GITHUB_TOKEN: the token you passed is invalid, expired or blocked by an organisation policy. Replace it.
The smartcloud checks never appear, or fail with no findings
The smartcloud checks never appear, or fail with no findings
checks: write. smartcloud doctor warns about this under check runs."Resource not accessible by integration"
"Resource not accessible by integration"
permissions with the list in the introduction, or the GitHub App’s permissions with the list in Getting started. In a restricted run these refusals are skipped and listed instead of failing."repository settings need an admin token"
"repository settings need an admin token"
"cross-repository sync needs a token that can read the source and push workflow files"
"cross-repository sync needs a token that can read the source and push workflow files"
Sync or backport cannot open a pull request
Sync or backport cannot open a pull request
actions.createPullRequests). A GitHub App token does not need it.Pull requests opened by smartcloud do not run CI
Pull requests opened by smartcloud do not run CI
Config and presets
A key is ignored with a warning
A key is ignored with a warning
smartcloud / config names the file and the key. Add the schema line to the top of the file so your
editor flags it as you type, and run smartcloud validate, which treats it as an error.The config check fails on an invalid value
The config check fails on an invalid value
roles.maintainers, commits, reviews.gate and parts of settings.
Dropping a bad value there would loosen policy, so it is an error that blocks merging instead of a warning. Fix the
value. The list is under Unknown keys and invalid values."invalid pattern ... (catastrophic backtracking)"
"invalid pattern ... (catastrophic backtracking)"
^(\w+\s?)+$. Text that almost matches could keep the run busy for minutes, so smartcloud refuses it: a run leaves
out the rule that uses it, and smartcloud validate reports it as an error. Rewrite it so each character can be
matched only one way, for example ^\w+(\s\w+)*$. See Patterns smartcloud
refuses."cannot change ... it is set by ..."
"cannot change ... it is set by ..."
A preset's rules were not checked
A preset's rules were not checked
Frequently asked questions
Does smartcloud run the code in a pull request?
Does smartcloud run the code in a pull request?
Can I run only some features?
Can I run only some features?
features
input, for example features: labels,stale, to run only those in one workflow.How do I try a change safely?
How do I try a change safely?
smartcloud dry-run --repo owner/name --pr 42 --config .github/smartcloud.yml
runs every feature against a real pull request with your local config and prints every write it would make.
smartcloud plan settings does the same for repository settings, and smartcloud sync --out dir renders synced
files to a folder.Will smartcloud delete my labels?
Will smartcloud delete my labels?
labelSync.prune: true. A label renamed through
aliases keeps its issues.Will smartcloud edit my comments?
Will smartcloud edit my comments?
roles.trustedBots, and finds its own by a hidden
marker. Anyone could type that marker, so a person’s comment containing it is ignored.Why is a finding a warning for me but an error for a contributor?
Why is a finding a warning for me but an error for a contributor?
maintainerLevel (warning by default), so a sole owner
is never blocked by their own policy. List maintainers under roles.maintainers.I still have a v1 .github/config.json
I still have a v1 .github/config.json
smartcloud migrate --out .github/smartcloud.yml once to convert it. See Migrating from v1.Can I turn telemetry off?
Can I turn telemetry off?
telemetry: false in the config, the action’s telemetry: false input, SMARTCLOUD_TELEMETRY=false or
DO_NOT_TRACK=1. It is discouraged, because telemetry is how problems are found. See Telemetry for
exactly what is collected.Which version of the action should I use?
Which version of the action should I use?
resnovas/smartcloud@v2 follows every v2 release. Pin a full tag such as @v2.0.0, or its commit SHA, to change
version only when you choose.