From 3f3d31eb6a72e3119cb5398ead684e474c688447 Mon Sep 17 00:00:00 2001 From: Andre Silva <32734153+Aandree5@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:37:00 +0100 Subject: [PATCH] refactor: renamed `GitHubPackages` integration to `GitHubContainerRegistry`, and all related code (#3727) --- packages/definitions/src/integration.ts | 4 ++-- packages/integrations/src/base/creator.ts | 4 ++-- .../github-container-registry-integration.ts} | 16 ++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) rename packages/integrations/src/{github-packages/github-packages-integration.ts => github-container-registry/github-container-registry-integration.ts} (89%) diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index bbf0a66ba..2cfd1c26f 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -214,8 +214,8 @@ export const integrationDefs = { category: ["releasesProvider"], defaultUrl: "https://api.linuxserver.io", }, - githubPackages: { - name: "Github Packages", + gitHubContainerRegistry: { + name: "GitHub Container Registry", secretKinds: [[], ["personalAccessToken"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/github.svg", category: ["releasesProvider"], diff --git a/packages/integrations/src/base/creator.ts b/packages/integrations/src/base/creator.ts index c0dc58462..fa6480180 100644 --- a/packages/integrations/src/base/creator.ts +++ b/packages/integrations/src/base/creator.ts @@ -14,7 +14,7 @@ import { QBitTorrentIntegration } from "../download-client/qbittorrent/qbittorre import { SabnzbdIntegration } from "../download-client/sabnzbd/sabnzbd-integration"; import { TransmissionIntegration } from "../download-client/transmission/transmission-integration"; import { EmbyIntegration } from "../emby/emby-integration"; -import { GithubPackagesIntegration } from "../github-packages/github-packages-integration"; +import { GitHubContainerRegistryIntegration } from "../github-container-registry/github-container-registry-integration"; import { GithubIntegration } from "../github/github-integration"; import { GitlabIntegration } from "../gitlab/gitlab-integration"; import { HomeAssistantIntegration } from "../homeassistant/homeassistant-integration"; @@ -108,7 +108,7 @@ export const integrationCreators = { npm: NPMIntegration, codeberg: CodebergIntegration, linuxServerIO: LinuxServerIOIntegration, - githubPackages: GithubPackagesIntegration, + gitHubContainerRegistry: GitHubContainerRegistryIntegration, quay: QuayIntegration, ntfy: NTFYIntegration, mock: MockIntegration, diff --git a/packages/integrations/src/github-packages/github-packages-integration.ts b/packages/integrations/src/github-container-registry/github-container-registry-integration.ts similarity index 89% rename from packages/integrations/src/github-packages/github-packages-integration.ts rename to packages/integrations/src/github-container-registry/github-container-registry-integration.ts index 64ef59f85..826de6a2f 100644 --- a/packages/integrations/src/github-packages/github-packages-integration.ts +++ b/packages/integrations/src/github-container-registry/github-container-registry-integration.ts @@ -16,14 +16,14 @@ import type { ReleasesResponse, } from "../interfaces/releases-providers/releases-providers-types"; -const localLogger = logger.child({ module: "GithubPackagesIntegration" }); +const localLogger = logger.child({ module: "GitHubContainerRegistryIntegration" }); -export class GithubPackagesIntegration extends Integration implements ReleasesProviderIntegration { - private static readonly userAgent = "Homarr-Lab/Homarr:GithubPackagesIntegration"; +export class GitHubContainerRegistryIntegration extends Integration implements ReleasesProviderIntegration { + private static readonly userAgent = "Homarr-Lab/Homarr:GitHubContainerRegistryIntegration"; protected async testingAsync(input: IntegrationTestingInput): Promise { const headers: RequestInit["headers"] = { - "User-Agent": GithubPackagesIntegration.userAgent, + "User-Agent": GitHubContainerRegistryIntegration.userAgent, }; if (this.hasSecretValue("personalAccessToken")) @@ -46,7 +46,7 @@ export class GithubPackagesIntegration extends Integration implements ReleasesPr const [owner, name] = repository.identifier.split("/"); if (!owner || !name) { localLogger.warn( - `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with Github Packages integration`, + `Invalid identifier format. Expected 'owner/name', for ${repository.identifier} with GitHub Container Registry integration`, { identifier: repository.identifier, }, @@ -86,7 +86,7 @@ export class GithubPackagesIntegration extends Integration implements ReleasesPr } catch (error) { const errorMessage = error instanceof RequestError ? error.message : String(error); - localLogger.warn(`Failed to get releases for ${owner}\\${name} with Github Packages integration`, { + localLogger.warn(`Failed to get releases for ${owner}\\${name} with GitHub Container Registry integration`, { owner, name, error: errorMessage, @@ -122,7 +122,7 @@ export class GithubPackagesIntegration extends Integration implements ReleasesPr forksCount: response.data.repository?.forks_count, }; } catch (error) { - localLogger.warn(`Failed to get details for ${owner}\\${name} with Github Packages integration`, { + localLogger.warn(`Failed to get details for ${owner}\\${name} with GitHub Container Registry integration`, { owner, name, error: error instanceof RequestError ? error.message : String(error), @@ -137,7 +137,7 @@ export class GithubPackagesIntegration extends Integration implements ReleasesPr request: { fetch: fetchWithTrustedCertificatesAsync, }, - userAgent: GithubPackagesIntegration.userAgent, + userAgent: GitHubContainerRegistryIntegration.userAgent, throttle: { enabled: false }, // Disable throttling for this integration, Octokit will retry by default after a set time, thus delaying the repsonse to the user in case of errors. Errors will be shown to the user, no need to retry the request. ...(this.hasSecretValue("personalAccessToken") ? { auth: this.getSecretValue("personalAccessToken") } : {}), });