Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dummy implementation for puppet #1

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
added puppet forge types
enoy19 committed Mar 22, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 0c2d55e1a02605706f5c27cfefe25b3feae20c1c
94 changes: 94 additions & 0 deletions lib/modules/datasource/puppet/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
export interface PuppetModule {
uri: string,
slug: string,
name: string,
deprecated_at: string | null,
owner: PuppetModuleOwner | null,
downloads: number,
created_at: string,
updated_at: string,
deprecated_for: string | null,
superseded_by: PuppetSupercededBy | null,
endorsement: PuppetEndorsement | null,
module_group: PuppetModuleGroup | null,
premium: boolean,
current_release: PuppetRelease | null,
releases: PuppetReleaseAbbreviated[],
feedback_score: IntRange<101>,
homepage_url: string,
issues_url: string,
}

export type PuppetModuleAbbreviated = Pick<PuppetModule,
| 'uri'
| 'slug'
| 'name'
| 'deprecated_at'
| 'owner'>;

export interface PuppetRelease {
uri: string,
slug: string,
module: PuppetModuleAbbreviated,
version: string,
metadata: Record<string, any>,
tags: string[],
pdk: boolean,
validation_score: IntRange<101>,
file_uri: string,
file_size: number,
file_md5: string,
file_sha256: string,
downloads: number,
readme: string,
changelog: string,
license: string,
reference: string,
pe_compatibility: string[] | null,
tasks: PuppetBoltTask[],
plans: PuppetBoltPlan[],
created_at: string,
updated_at: string,
deleted_at: string | null,
deleted_for: string | null,
}

export type PuppetReleaseAbbreviated = Pick<PuppetRelease,
| 'uri'
| 'slug'
| 'version'
| 'created_at'
| 'deleted_at'
| 'file_uri'
| 'file_size'>;

export interface PuppetBoltPlan {
uri: string,
name: string,
private: boolean,
}

export interface PuppetBoltTask {
name: string,
executables: string[],
description: string,
metadata: Record<string, any>,
}

export interface PuppetSupercededBy {
uri: string,
slug: string,
}

export interface PuppetModuleOwner {
uri: string,
slug: string,
username: string,
gravatar_id: string,
}

export type PuppetEndorsement = 'supported' | 'approved' | 'partner';
export type PuppetModuleGroup = 'base' | 'pe_only';

type IntRange<MAX_EXCLUSIVE extends number> = number extends MAX_EXCLUSIVE ? number : _IntRangeHelper<MAX_EXCLUSIVE, []>;
type _IntRangeHelper<T extends number, R extends unknown[]> = R['length'] extends T ? R[number] : _IntRangeHelper<T, [R['length'], ...R]>;