From a35f8dabcf2b652febfe5e9dccca1c6939ed469d Mon Sep 17 00:00:00 2001 From: finn Date: Mon, 3 Feb 2025 14:47:29 -0800 Subject: [PATCH] project-dashboard: Add Object-C and some other swift/objective-c package managers, and add square/aardvark and square/valet --- .../src/components/LanguageIcon.astro | 1 + projects-dashboard/src/content/config.ts | 11 ++++++-- .../src/content/project/square_aardvark.md | 26 +++++++++++++++++ .../src/content/project/square_valet.md | 28 +++++++++++++++++++ projects-dashboard/src/lib/badge.ts | 14 +++++++++- 5 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 projects-dashboard/src/content/project/square_aardvark.md create mode 100644 projects-dashboard/src/content/project/square_valet.md diff --git a/projects-dashboard/src/components/LanguageIcon.astro b/projects-dashboard/src/components/LanguageIcon.astro index c269cf3..cd921c5 100644 --- a/projects-dashboard/src/components/LanguageIcon.astro +++ b/projects-dashboard/src/components/LanguageIcon.astro @@ -17,6 +17,7 @@ const iconMap = { java: { icon: "java", color: "#b07219" }, python: { icon: "py", color: "#3572A5" }, ruby: { icon: "ruby", color: "#701516" }, + "objective-c": { icon: "objective-c", color: "#438eff" }, }; --- diff --git a/projects-dashboard/src/content/config.ts b/projects-dashboard/src/content/config.ts index 7ab715d..4db316b 100644 --- a/projects-dashboard/src/content/config.ts +++ b/projects-dashboard/src/content/config.ts @@ -19,6 +19,7 @@ const languageSchema = z.enum([ "java", "python", "ruby", + "objective-c", ]); export type Language = z.infer; @@ -29,7 +30,10 @@ const artifactTypeSchema = z.enum([ "reference-docs", "pypi", "cocoapods", - "rubygems" + "rubygems", + "spi", // Swift Package Index + "cocoapods", + "carthage", ]); export type ArtifactType = z.infer; @@ -72,7 +76,10 @@ const badgeTypeSchema = z.enum([ "github-discussions", "slack", "link", - "rubygems" + "rubygems", + "spi", + "cocoapods", + "carthage", ]); export type BadgeType = z.infer; diff --git a/projects-dashboard/src/content/project/square_aardvark.md b/projects-dashboard/src/content/project/square_aardvark.md new file mode 100644 index 0000000..1c8ccc9 --- /dev/null +++ b/projects-dashboard/src/content/project/square_aardvark.md @@ -0,0 +1,26 @@ +--- +repo: + owner: "square" + name: aardvark + defaultBranch: "master" +title: Aardvark +description: Aardvark is a library that makes it dead simple to create actionable bug reports. +branding: square +lifeCycleStatus: "mature" +ciChecks: + - type: "github-actions" + label: build + value: ci.yml +licenses: + - type: "github-license" +contributing: + - type: "contribution-guidelines" + value: "Contributing.md" + - type: "issues" +packages: + - packageName: aardvark + language: objective-c + artifacts: + - type: cocoapods + value: Aardvark +--- diff --git a/projects-dashboard/src/content/project/square_valet.md b/projects-dashboard/src/content/project/square_valet.md new file mode 100644 index 0000000..29e08f9 --- /dev/null +++ b/projects-dashboard/src/content/project/square_valet.md @@ -0,0 +1,28 @@ +--- +repo: + owner: "square" + name: valet + defaultBranch: main +title: Valet +description: Valet lets you securely store data in the iOS, tvOS, watchOS, or macOS Keychain without knowing a thing about how the Keychain works. It’s easy. We promise. +branding: square +lifeCycleStatus: mature +ciChecks: + - type: github-actions + label: ci + value: ci.yml +licenses: + - type: "github-license" +contributing: + - type: "contribution-guidelines" + value: "Contributing.md" + - type: "issues" +packages: + - packageName: valet + language: swift + artifacts: + - type: spi + value: square/Valet + - type: cocoapods + value: Valet +--- diff --git a/projects-dashboard/src/lib/badge.ts b/projects-dashboard/src/lib/badge.ts index 7d3d4c8..bcfe418 100644 --- a/projects-dashboard/src/lib/badge.ts +++ b/projects-dashboard/src/lib/badge.ts @@ -256,13 +256,23 @@ function getRubygemsBadge(value?: string): [string, string] { throw new Error("gem name required for badge"); } - let badgeSrc = `https://img.shields.io/gem/v/${value}` let href = `https://rubygems.org/gems/${value}` return [badgeSrc, href]; } +function getSpiBadge(value?: string): [string, string] { + if (!value) { + throw new Error("gem name required for badge"); + } + + let badgeSrc = `https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2F${encodeURIComponent(value)}%2Fbadge%3Ftype%3Dswift-versions` + let href = `https://swiftpackageindex.com/${value}` + + return [badgeSrc, href]; +} + export function getBadgeInfo( repo: Repo, badge: Badge, @@ -320,6 +330,8 @@ export function getBadgeInfo( return getLinkBadge(label, value); case "rubygems": return getRubygemsBadge(value); + case "spi": + return getSpiBadge(value); default: throw new Error(`Unknown badge type: ${type}`); }