CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

tessl-labs/factory

Skills that Tessl factory loops run: implement a Linear or GitHub issue as a pull request, shepherd that pull request through review and checks, wake the shepherd for pull requests that a push to their base branch left in conflict, and keep the work in step when a person stops, ends, answers or closes it.

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

inputs.schema.jsonskills/merge-conflict-sweep/schemas/

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "required": ["GITHUB_AUTHOR_IDS"],
  "properties": {
    "GITHUB_AUTHOR_IDS": {
      "type": "string",
      "minLength": 1,
      "description": "Comma-separated numeric GitHub user ids of the authors whose pull requests the sweep acts on. Setup fills it with `{{ github.tesslApp.userId }}`."
    },
    "BRANCH_PREFIXES": {
      "type": "string",
      "description": "Comma-separated head branch prefixes the sweep acts on. Absent or empty means `tessl/`."
    },
    "GITHUB_REQUIRED_LABEL": {
      "type": "string",
      "description": "The label a pull request must carry. Absent or empty means `tessl`."
    },
    "GITHUB_SKIP_LABEL": {
      "type": "string",
      "description": "A label that rules a pull request out. Absent or empty rules none out."
    },
    "FIXER_ACTION": {
      "type": "string",
      "description": "The action the sweep triggers for a pull request it wakes, given the pull request's number as `GITHUB_PR_NUMBER`. Absent or empty means `shepherd`."
    },
    "LINEAR_TESSL_APP_USER_ID": {
      "type": "string",
      "description": "The Tessl App's Linear user id: a Linear issue counts as delegated to Tessl when its delegate has this id. Setup fills it with `{{ linear.tesslApp.userId }}`. Absent or empty, no Linear issue counts as delegated to Tessl."
    },
    "LINEAR_ACTIVE_STATES": {
      "type": "string",
      "description": "Comma-separated Linear state names a pull request's Linear issue must be in for the sweep to wake it. Absent or empty allows any state whose type is not completed or canceled."
    },
    "LINEAR_STATE_MAX_AGES": {
      "type": "string",
      "pattern": "^\\s*([^,=]+=\\s*[1-9][0-9]*[smhd]\\s*)(,\\s*[^,=]+=\\s*[1-9][0-9]*[smhd]\\s*)*$",
      "description": "Comma-separated `State=duration` pairs: how long after a Linear issue entered that state, its current state, its pull request is still swept, such as `In Review=24h`. A state not named has no limit; absent or empty, no state has one."
    },
    "GITHUB_ISSUE_LABEL": {
      "type": "string",
      "description": "The label a pull request's GitHub issue must carry for the sweep to wake it, unless the pull request's description names another in a `<!-- tessl-factory:issue-label: <label> -->` line. Absent or empty means `tessl`."
    },
    "DRY_RUN": {
      "type": "string",
      "enum": ["true", "false"],
      "description": "`true` decides and reports what the sweep would trigger without triggering. `false` when absent."
    }
  }
}

README.md

tile.json