Fact types
This page is generated from the code of engine version 0.16.0. Between releases, the site shows the code on main, which may already have changes for the next version.
A fact is data that Pointsman looks up itself, for example whether a place is in a flood zone or how many files a pull request changes. The AI does not guess facts. A profile names each fact with a type from this page, and its rules read the fields of that type.
In the tables, name stands for the name the profile gives the fact.
Shared fact types
Section titled “Shared fact types”Shared fact types (capabilities) are defined by the engine. Modules answer them, some only for their own layers.
inside
Section titled “inside”Inside an area of a layer.
Answered by @pointsman/facts-gsi (layers gsi-flood-max).
| Field | Kind | Meaning |
|---|---|---|
inside | yes or no | true: the place is inside name |
rank | number | the rank of name |
class | text | the class of name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
layer | string | yes | Layer id for inside and nearest, configured per deployment (source, licence, attribution). |
Missing as no_location when the request has no value at at (no location in the request). A lookup gives up after 3 s.
nearest
Section titled “nearest”The nearest feature of a layer.
Answered by @pointsman/facts-gsi (layers gsi-shelters-flood).
| Field | Kind | Meaning |
|---|---|---|
found | yes or no | true: a nearest name was found |
distance_m | number | the distance to the nearest name (m) |
name | text | the name of the nearest name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
layer | string | yes | Layer id for inside and nearest, configured per deployment (source, licence, attribution). |
Missing as no_location when the request has no value at at (no location in the request). A lookup gives up after 3 s.
detour
Section titled “detour”Extra metres around a closed section (needs a LineString).
Answered by @pointsman/facts-valhalla.
| Field | Kind | Meaning |
|---|---|---|
possible | yes or no | true: there is a way around (name) |
extra_m | number | the extra distance of the way around (name) (m) |
route | text | For people and maps only; rules cannot use it. |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
mode | “drive” | “walk” | no | For detour: by car (drive, the default) or on foot (walk). |
route | boolean | no | For detour: also return the way around (route, an encoded polyline). Default false: the route starts and ends at the section, so it is stored with each decision. |
Missing as no_location when the request has no value at at (no location in the request). A lookup gives up after 8 s.
@pointsman/github
Section titled “@pointsman/github”Fact types of the module @pointsman/github. Deployment settings it reads: FACTS_GITHUB, FACTS_GITHUB_TOKEN, FACTS_GITHUB_APP_ID, FACTS_GITHUB_APP_PRIVATE_KEY, FACTS_GITHUB_IGNORE_CHECK.
github_pr
Section titled “github_pr”A pull request.
| Field | Kind | Meaning |
|---|---|---|
open | yes or no | true: the pull request name is open |
merged | yes or no | true: the pull request name is merged |
draft | yes or no | true: the pull request name is a draft |
wip_title | yes or no | true: the title of name says WIP |
files | number | the number of changed files of name |
changed_lines | number | the number of changed lines of name |
base_is_default | yes or no | true: name targets the default branch |
author_member | yes or no | true: the author of name is a member of the owner |
author_dependabot | yes or no | true: name is by Dependabot |
fork | yes or no | true: name comes from a fork |
all_commits_verified | yes or no | true: every commit of name has a verified signature |
pushed_by_author | text | the answer to “did the author of name push every commit” |
author_sole_code_owner | yes or no | true: the author of name is the only code owner of every changed file |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_paths
Section titled “github_paths”Changed files that match paths.
| Field | Kind | Meaning |
|---|---|---|
any | yes or no | true: a changed file matches name |
all | yes or no | true: every changed file matches name |
count | number | the number of changed files that match name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
paths | string[] | yes | For github_paths: the files that count, as globs from the top of the repository (*, ** and ? only), for example docs/**. |
except | string[] | no | For github_paths: files that never count, even when they match paths. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_checks
Section titled “github_checks”Required checks on the head commit.
| Field | Kind | Meaning |
|---|---|---|
required | number | the number of required checks (name) |
green | yes or no | true: every required check (name) passed |
pending | yes or no | true: a required check (name) has not finished |
failed | yes or no | true: a required check (name) failed |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_property
Section titled “github_property”A repository custom property.
| Field | Kind | Meaning |
|---|---|---|
value | text | the value of name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
property | string | yes | For github_property: the name of a repository custom property. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_workflows
Section titled “github_workflows”The GitHub Actions files it changes.
| Field | Kind | Meaning |
|---|---|---|
changed | number | the number of changed files in name (workflows, local actions, scanner settings) |
removed | number | the number of removed files in name (workflows, local actions, scanner settings) |
unparsed | number | the number of workflow and action.yml files in name that cannot be read safely |
bytes | number | the size in bytes of the changed files in name |
privileged | number | the number of changed workflows in name that run with the base repository’s token |
privileged_new | number | the number of such triggers that name adds |
head_checkout | number | the number of privileged jobs in name that may check out other code |
pwn_request | number | the number of privileged jobs in name that may run the checked-out code |
artifact_in_privileged | number | the number of privileged jobs in name that download an artifact of another run |
remote_reusable | number | the number of jobs in name that call a reusable workflow of another repository from a privileged workflow, or pass every secret |
secrets_new | number | the number of secrets that jobs in name newly read |
injection | number | the number of untrusted expressions in scripts in name |
permissions_missing | number | the number of jobs in name without permissions |
write_all | number | the number of broad write permissions in name |
write_new | number | the number of write permissions that name adds |
persisted | number | the number of checkouts in name that keep the token on disk |
unpinned | number | the number of actions and images in name not pinned to a commit or digest |
suppressions_new | number | the number of scanner exceptions that name adds |
local_unresolved | number | the number of local actions and reusable workflows in name that a person must read |
detail | text | For people and maps only; rules cannot use it. |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
privileged_triggers | string[] | no | For github_workflows: more triggers that run in the base repository’s context, added to the defaults. |
inert_actions | string[] | no | For github_workflows: more actions (owner/repo or owner/*) known not to run workspace content, added to the defaults (actions/checkout, actions/upload-artifact). |
safe_contexts | string[] | no | For github_workflows: more github.* paths that are safe in a script (numbers, ids, commit ids), added to the defaults. Exact paths in lower case. |
base_refs | string[] | no | For github_workflows: more expressions that name the base in a checkout’s ref, added to the defaults (github.sha, github.ref). |
git_actions | string[] | no | For github_workflows: actions (owner/repo or owner/*) that need the git credentials of a checkout. |
pin_exempt | string[] | no | For github_workflows: actions (owner/repo or owner/*) that need not be pinned to a commit. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_copilot
Section titled “github_copilot”Copilot code review on the pull request.
| Field | Kind | Meaning |
|---|---|---|
requested | yes or no | true: a Copilot review of name is requested |
reviewed_head | yes or no | true: Copilot reviewed the head commit of name |
approved_head | yes or no | true: Copilot approved the head commit of name |
reviews | number | the number of Copilot reviews of name |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_app_approval
Section titled “github_app_approval”Whether a GitHub App approved the pull request.
| Field | Kind | Meaning |
|---|---|---|
approved_head | yes or no | true: the app of name approved the head commit |
approved_any | yes or no | true: an approval by the app of name stands |
reviews | number | the number of reviews by the app of name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
app | string | yes | For github_app_approval: the GitHub App’s slug; its bot account is “ |
bot_id | integer | no | For github_app_approval: the account id of the app’s bot (GET /users/ |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_release
Section titled “github_release”Whether the pull request only changes a version (and the changelog).
| Field | Kind | Meaning |
|---|---|---|
version_only | yes or no | true: name only changes a version (and the changelog) |
from | text | the version before name |
to | text | the version after name |
level | text | the kind of version step of name (major, minor, patch or none) |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
version_files | string[] | yes | For github_release: the files where a line that sets the version may change (globs), for example package.json or src/version.ts: a key such as version, VERSION or ENGINE_VERSION with the version as its value; in a package.json only its “version” line. |
version_text_files | string[] | no | For github_release: files where any line may carry the version, for docs that name it (globs). Never files that run. |
changelogs | string[] | no | For github_release: changelog files (globs), which may only get lines added; default CHANGELOG.md. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
github_bump
Section titled “github_bump”Whether the pull request only bumps npm dependency versions.
| Field | Kind | Meaning |
|---|---|---|
applies | yes or no | true: name is an npm dependency bump |
only_manifests | yes or no | true: name only changes package.json and lockfiles |
version_only | yes or no | true: name only changes dependency versions |
semver | text | the largest version step of name (major, minor, patch or none) |
dev_only | yes or no | true: name only bumps dev dependencies |
registry_changed | yes or no | true: name may change where a package comes from |
manifest_lines | number | the number of changed lines in the package.json files of name |
release_age_days | number | the age of the youngest release that name bumps to (days) |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 10 s.
@pointsman/coderabbit
Section titled “@pointsman/coderabbit”Fact types of the module @pointsman/coderabbit. Deployment settings it reads: FACTS_CODERABBIT, FACTS_GITHUB, FACTS_GITHUB_TOKEN, FACTS_GITHUB_APP_ID, FACTS_GITHUB_APP_PRIVATE_KEY.
coderabbit
Section titled “coderabbit”CodeRabbit reviews of the pull request.
| Field | Kind | Meaning |
|---|---|---|
installed | yes or no | true: CodeRabbit runs in the repository of name |
ignored | yes or no | true: the description of name switches CodeRabbit off |
reviewed_any | yes or no | true: CodeRabbit reviewed a commit of name |
reviewed_head | yes or no | true: CodeRabbit reviewed the head commit of name |
in_progress | yes or no | true: a CodeRabbit review of name is running |
approved_head | yes or no | true: CodeRabbit approved the head commit of name |
rebase_only | yes or no | true: the head of name has the same change as the commit CodeRabbit approved |
changes_requested | yes or no | true: CodeRabbit requests changes on name |
unresolved_threads | number | the number of open CodeRabbit threads on name |
outside_diff_findings | yes or no | true: CodeRabbit’s latest review of name has findings outside the diff |
billable_files | number | the number of files a CodeRabbit review of name would bill |
price_stated | yes or no | true: CodeRabbit stated the billable files of the head of name |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
not_reviewed | string[] | no | For coderabbit and coderabbit_spend: files CodeRabbit does not review (globs, for example **/pnpm-lock.yaml), left out of the billable count Pointsman makes when CodeRabbit stated none. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
coderabbit_budget
Section titled “coderabbit_budget”The pull request author’s CodeRabbit review budget.
| Field | Kind | Meaning |
|---|---|---|
known | yes or no | true: the budget name is known |
asked_minutes_ago | number | the minutes since the author asked for name |
available | number | the number of free reviews in name |
wait_stated | yes or no | true: CodeRabbit stated a wait for name |
wait_minutes | number | the minutes to wait for the next free review in name |
allowance_per_hour | number | the reviews per hour in name |
observed_minutes_ago | number | the minutes since name was read |
taken_by_other_pr | yes or no | true: another pull request of the author took a free review since name was read |
author | text | the author in name For people and maps only; rules cannot use it. |
pull_request | text | the pull request of name For people and maps only; rules cannot use it. |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
review_actions | string[] | no | For coderabbit_budget and coderabbit_queue: decision actions that use a free review (default: review). |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
coderabbit_queue
Section titled “coderabbit_queue”The author’s pull requests waiting for a CodeRabbit review ahead of this one.
| Field | Kind | Meaning |
|---|---|---|
ahead | number | the number of pull requests ahead in name |
wait_minutes | number | the minutes to wait in name |
author | text | the author in name For people and maps only; rules cannot use it. |
pull_request | text | the pull request of name For people and maps only; rules cannot use it. |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
waiting | string[] | yes | For coderabbit_queue: decision actions that mean a pull request waits for a free review (for example wait, queue). A pull request whose latest decision of this profile has one of them waits. |
review_actions | string[] | no | For coderabbit_budget and coderabbit_queue: decision actions that use a free review (default: review). |
max_age_minutes | integer | no | For coderabbit_queue: a waiting decision older than this many minutes no longer counts (default 120, at most 1440). |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
coderabbit_spend
Section titled “coderabbit_spend”The spend on paid CodeRabbit reviews.
| Field | Kind | Meaning |
|---|---|---|
price_usd | number | the price of the review in name (USD) |
per_pr_usd_after | number | the spend on the pull request after the review in name (USD) |
per_window_usd_after | number | the spend in the time window after the review in name (USD) |
paid_for_head | yes or no | true: a paid review of the head of name was requested and started |
author | text | the author in name For people and maps only; rules cannot use it. |
pull_request | text | the pull request of name For people and maps only; rules cannot use it. |
head | text | the head commit of name For people and maps only; rules cannot use it. |
Settings in a profile, besides name, type and at:
| Setting | Type | Required | Description |
|---|---|---|---|
pay_actions | string[] | yes | For coderabbit_spend: decision actions that pay for a review (for example pay). Every logged decision with one of them counts at its price, once per head, until shown otherwise. |
usd_per_file | number | yes | For coderabbit_spend: the price per billable file, in US dollars, when CodeRabbit stated no price for the head. |
window_hours | integer | no | For coderabbit_spend: the time window of per_window_usd_after, in hours (default 5, at most 24). |
pr_hours | integer | no | For coderabbit_spend: how far back per_pr_usd_after counts payments of the pull request, in hours (default 48, at most 168). |
payer_apps | integer[] | no | For coderabbit_spend: GitHub Apps, by id, whose paid review comments count for paid_for_head (besides the author and organization owners and members). |
not_reviewed | string[] | no | For coderabbit and coderabbit_spend: files CodeRabbit does not review (globs, for example **/pnpm-lock.yaml), left out of the billable count Pointsman makes when CodeRabbit stated none. |
Missing as no_pr when the request has no value at at (no pull request in the request). A lookup gives up after 5 s.
Missing reasons
Section titled “Missing reasons”A fact that has no value is missing: its field missing is true and reason says why. Rules can test both.
| Reason | Meaning | From |
|---|---|---|
unavailable | the data is not available | any fact |
timeout | the lookup took too long | any fact |
error | an error | any fact |
no_location | no location in the request | inside, nearest, detour |
no_pr | no pull request in the request | github_pr, github_paths, github_checks, github_property, github_workflows, github_copilot, github_app_approval, github_release, github_bump, coderabbit, coderabbit_budget, coderabbit_queue, coderabbit_spend |
stale | the pull request has a newer commit | @pointsman/coderabbit |
no_log | no decision log to read (a test token, or a lookup outside a decision) | @pointsman/coderabbit |
An open-source project by Geolonia · About this site