Skip to content

Create a monorepo; the caller becomes its owner

POST
https://app.gitpando.com/v1/monorepos

Authorisation

  • credentialoptionalHTTP
  • sessionoptionalAPI key in cookie

Request bodyJSONrequired

  • namestringrequired

    A monorepo name, unique within its owner: lower-case letters, digits, ., _, -; starts with a letter or digit; no --; at most 39 characters. Input in any case is lowered. Reserved, because /{owner}/{name} would be one of Pando's own pages: sessions (a person's recorded agent sessions). Creating or renaming to one answers 400 reserved_name.

    pattern: ^[a-z0-9](?:[a-z0-9._]|-(?!-)){0,38}$
  • owneroptionalstring

    The namespace: your own login (the default), or an organization you are in (any member may). Else 403 not_your_namespace. In an org, the creator also gets their own owner row, so they can rename or delete what they made.

    pattern: ^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$
  • kindoptionalmonorepoorrepo

    monorepo: Pando also makes the meta layer's Artifacts repo (<id>--meta, empty); add code repos with createRepo. repo: a plain git repo; Pando makes its one repo (path ., name = the monorepo's name) and returns it in repos.

    Default: "monorepo"

Returns

201

Created

JSON
  • monorepoobjectrequired
    8 properties
    • idstringrequired

      Permanent: m_ and 16 hex characters, or, for a monorepo made before namespaces, its old name.

    • ownerstringrequired

      A user's login, which is their namespace, or an organization's (one space for both): 1 to 39 lower-case letters, digits and single hyphens, no hyphen at either end (input in any case is lowered). Reserved, because a namespace is the first URL segment: v1, healthz, login, logout, settings, assets, fonts, new, api, app, static, orgs, users, docs, install. A login made at sign-in comes from the email's local part, skipping reserved and taken names (base, base-2, ... base-999, then a random tail).

      pattern: ^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$
    • namestringrequired

      A monorepo name, unique within its owner: lower-case letters, digits, ., _, -; starts with a letter or digit; no --; at most 39 characters. Input in any case is lowered. Reserved, because /{owner}/{name} would be one of Pando's own pages: sessions (a person's recorded agent sessions). Creating or renaming to one answers 400 reserved_name.

      pattern: ^[a-z0-9](?:[a-z0-9._]|-(?!-)){0,38}$
    • full_namestringrequired

      owner/name.

    • kindmonorepoorreporequired
    • created_atstringrequired
      format: date-time
    • roleownerormemberrequired

      The caller's: the higher of their own row and, in an org's monorepo, their org role.

    • owner_typeuserororgrequired

      Whose namespace owner is: a person's or an organization's.

  • reposarray ofobjectrequired

    The plain repo for kind repo; empty for kind monorepo.

    11 properties
    • monorepostringrequired

      The monorepo's owner/name.

    • namestringrequired

      The repo's id in URLs (its path with / turned into -).

    • pathstringrequired

      projects/web, or . for a plain repo.

    • default_branchstringrequired

      Always main for now.

    • clone_urlstringrequired

      The git door URL: https://<host>/<owner>/<monorepo>/<name>.git, or https://<host>/<owner>/<name>.git for a plain repo.

    • created_atstringrequired
      format: date-time
    • descriptionoptionalstring | null
    • required_checksoptionalarray | null

      Read from .pando/pando.toml on main when the repo is fetched one at a time (getRepo); left out of lists. Null while unknown.

    • checks_unknownoptionalstring | null

      With required_checks, why they are unknown (pando.toml unreadable or broken); else null.

    • releases_publicoptionalboolean

      The switch "Anyone can download releases" (getRepo only). On, the project's release files download without signing in; never its code.

    • created_byoptionalstring
  • replaced_aliasobject | nullrequired

    An old owner/name (from a rename or transfer) that led to another monorepo and now leads to this one. Null when nothing was taken over. Never silent.

    2 properties
    • full_namestringrequired

      The old name, now this monorepo's.

    • pointed_tostring | nullrequired

      The owner/name it led to before.

401

An error

JSON
  • errorobjectrequired
    4 properties
    • codestringrequired
    • messagestringrequired
    • pathsoptionalarray ofstring
    • checksoptionalobject

      GitHub's combined status, plus the required contexts and which are missing.

      6 properties
      • shastring | nullrequired
      • statesuccessorpendingorfailureorerrorormissingorunknownrequired

        success when the merge gate passes; missing when a required context has not reported; unknown while the required checks are (an unforced merge is refused).

      • requiredarray | nullrequired

        Null while unknown.

      • checks_unknownstring | nullrequired

        Why the required checks are unknown, in plain words: "Pando couldn't read this monorepo's required checks; try again", or "pando.toml line 3: expected comma or end of structure; fix it on main, or merge with force". Null otherwise.

      • statusesarray ofobjectrequired

        The latest status per context.

        8 properties
        • shastringrequired
        • contextstringrequired
        • statependingorsuccessorfailureorerrorrequired
        • created_atstringrequired
          format: date-time
        • target_urloptionalstring | null
        • descriptionoptionalstring | null
        • creatoroptionalstring

          The member who posted it (a login); app:<slug> for a status posted with a status token or by a CI integration; hook:<hook id> for a status token from a web hook with no app.

        • appoptionalstring | null

          The CI service that reported it (buildkite, github-actions, ...), stamped by Pando from a status token or a CI integration, never from the body or target_url. Null when a member posted it with their own credential. The web shows the service's mark for a slug it knows.

      • missingoptionalarray ofstring

403

An error

JSON
  • errorobjectrequired
    4 properties
    • codestringrequired
    • messagestringrequired
    • pathsoptionalarray ofstring
    • checksoptionalobject

      GitHub's combined status, plus the required contexts and which are missing.

      6 properties
      • shastring | nullrequired
      • statesuccessorpendingorfailureorerrorormissingorunknownrequired

        success when the merge gate passes; missing when a required context has not reported; unknown while the required checks are (an unforced merge is refused).

      • requiredarray | nullrequired

        Null while unknown.

      • checks_unknownstring | nullrequired

        Why the required checks are unknown, in plain words: "Pando couldn't read this monorepo's required checks; try again", or "pando.toml line 3: expected comma or end of structure; fix it on main, or merge with force". Null otherwise.

      • statusesarray ofobjectrequired

        The latest status per context.

        8 properties
        • shastringrequired
        • contextstringrequired
        • statependingorsuccessorfailureorerrorrequired
        • created_atstringrequired
          format: date-time
        • target_urloptionalstring | null
        • descriptionoptionalstring | null
        • creatoroptionalstring

          The member who posted it (a login); app:<slug> for a status posted with a status token or by a CI integration; hook:<hook id> for a status token from a web hook with no app.

        • appoptionalstring | null

          The CI service that reported it (buildkite, github-actions, ...), stamped by Pando from a status token or a CI integration, never from the body or target_url. Null when a member posted it with their own credential. The web shows the service's mark for a slug it knows.

      • missingoptionalarray ofstring

409

monorepo_exists: the owner has a monorepo with that name.

JSON
  • errorobjectrequired
    4 properties
    • codestringrequired
    • messagestringrequired
    • pathsoptionalarray ofstring
    • checksoptionalobject

      GitHub's combined status, plus the required contexts and which are missing.

      6 properties
      • shastring | nullrequired
      • statesuccessorpendingorfailureorerrorormissingorunknownrequired

        success when the merge gate passes; missing when a required context has not reported; unknown while the required checks are (an unforced merge is refused).

      • requiredarray | nullrequired

        Null while unknown.

      • checks_unknownstring | nullrequired

        Why the required checks are unknown, in plain words: "Pando couldn't read this monorepo's required checks; try again", or "pando.toml line 3: expected comma or end of structure; fix it on main, or merge with force". Null otherwise.

      • statusesarray ofobjectrequired

        The latest status per context.

        8 properties
        • shastringrequired
        • contextstringrequired
        • statependingorsuccessorfailureorerrorrequired
        • created_atstringrequired
          format: date-time
        • target_urloptionalstring | null
        • descriptionoptionalstring | null
        • creatoroptionalstring

          The member who posted it (a login); app:<slug> for a status posted with a status token or by a CI integration; hook:<hook id> for a status token from a web hook with no app.

        • appoptionalstring | null

          The CI service that reported it (buildkite, github-actions, ...), stamped by Pando from a status token or a CI integration, never from the body or target_url. Null when a member posted it with their own credential. The web shows the service's mark for a slug it knows.

      • missingoptionalarray ofstring
Navigation

Type to search…

↑↓ navigate↵ selectEsc close