Skip to content

[BUG]: GitHub App Installation DataStructure's account property is missing data fields #305

@Jman420

Description

@Jman420

What happened?

Upgrading to the latest version of Octokit OpenAPI Types has removed a large number of fields from the account property of the InstallationFunctionOptions type. Previously this property contained the union of both simple-user and enterprise schemas, but the latest version seems to have changed this to only the intersection of the two types.

Latest version snippet from types.d.ts :

installation: {
      /**
       * @description The ID of the installation.
       * @example 1
       */
      id: number;
      account:
        | (
            | components["schemas"]["simple-user"]
            | components["schemas"]["enterprise"]
          )
        | null;
      /**
       * @description Describe whether all repositories have been selected or there's a selection involved
       * @enum {string}
       */
      repository_selection: "all" | "selected";
      /**
       * Format: uri
       * @example https://api.github.com/installations/1/access_tokens
       */
      access_tokens_url: string;
      /**
       * Format: uri
       * @example https://api.github.com/installation/repositories
       */
      repositories_url: string;
      /**
       * Format: uri
       * @example https://github.com/organizations/github/settings/installations/1
       */
      html_url: string;
      /** @example 1 */
      app_id: number;
      /** @description The ID of the user or organization this token is being scoped to. */
      target_id: number;
      /** @example Organization */
      target_type: string;
      permissions: components["schemas"]["app-permissions"];
      events: string[];
      /** Format: date-time */
      created_at: string;
      /** Format: date-time */
      updated_at: string;
      /** @example config.yaml */
      single_file_name: string | null;
      /** @example true */
      has_multiple_single_files?: boolean;
      /**
       * @example [
       *   "config.yml",
       *   ".github/issue_TEMPLATE.md"
       * ]
       */
      single_file_paths?: string[];
      /** @example github-actions */
      app_slug: string;
      suspended_by: components["schemas"]["nullable-simple-user"];
      /** Format: date-time */
      suspended_at: string | null;
      /** @example "[email protected]" */
      contact_email?: string | null;
    };

Previous version :

installation: {
      /**
       * @description The ID of the installation.
       * @example 1
       */
      id: number;
      account:
        | (Partial<components["schemas"]["simple-user"]> &
            Partial<components["schemas"]["enterprise"]>)
        | null;
      /**
       * @description Describe whether all repositories have been selected or there's a selection involved
       * @enum {string}
       */
      repository_selection: "all" | "selected";
      /**
       * Format: uri
       * @example https://api.github.com/installations/1/access_tokens
       */
      access_tokens_url: string;
      /**
       * Format: uri
       * @example https://api.github.com/installation/repositories
       */
      repositories_url: string;
      /**
       * Format: uri
       * @example https://github.com/organizations/github/settings/installations/1
       */
      html_url: string;
      /** @example 1 */
      app_id: number;
      /** @description The ID of the user or organization this token is being scoped to. */
      target_id: number;
      /** @example Organization */
      target_type: string;
      permissions: components["schemas"]["app-permissions"];
      events: string[];
      /** Format: date-time */
      created_at: string;
      /** Format: date-time */
      updated_at: string;
      /** @example config.yaml */
      single_file_name: string | null;
      /** @example true */
      has_multiple_single_files?: boolean;
      /**
       * @example [
       *   "config.yml",
       *   ".github/issue_TEMPLATE.md"
       * ]
       */
      single_file_paths?: string[];
      /** @example github-actions */
      app_slug: string;
      suspended_by: components["schemas"]["nullable-simple-user"];
      /** Format: date-time */
      suspended_at: string | null;
      /** @example "[email protected]" */
      contact_email?: string | null;
    };

Versions

[email protected]
[email protected]

Working OpenAPI-Types : @octokit/[email protected]
Broken OpenAPI-Types : @octokit/[email protected]

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: BlockedSome technical or requirement is blocking the issueType: BugSomething isn't working as documented

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions