@ticatec/omniflow-forgejo
v2.0.0
Published
All-in-one Forgejo and Gitea artifact provider for OmniFlow: Docker OCI containers, NPM, Maven, and Generic package registries
Readme
@ticatec/omniflow-forgejo
All-in-one Forgejo and Gitea artifact provider for OmniFlow. Provides full-stack artifact publishing (Docker/OCI container registry, NPM, Maven, and Generic archive packages) under a unified credential model.
Features
- Container Registry: Push Docker/OCI container images directly to Forgejo's container registry (
ForgejoContainerPublisher). - NPM Package Registry: Publish npm scoped packages to Forgejo (
ForgejoNpmPublisher). - Maven Package Registry: Publish Java JAR and POM packages via direct HTTP PUT (
ForgejoMavenPublisher). - Generic Package Registry: Publish frontend tarballs, binaries, or release zip archives (
ForgejoGenericPublisher). Also implementsdownload(), which fetches an archive by name and version (e.g. for a deployment plugin). - Unified Client & Credentials: Personal Access Tokens (PAT) and HTTP Basic Auth support across all operations.
Self-hosted domains: For custom domain names without
forgejoorgiteain the hostname (e.g.git.corp.cn), specifyname: forgejoorname: giteain your registry configuration.
How to Register
1. One-Click Registration (Recommended)
Use registerForgejo() to register all artifact publishers into OmniFlow at once:
import { defaultArtifactPublisherRegistry } from '@ticatec/omniflow-artifact'
import { registerForgejo } from '@ticatec/omniflow-forgejo'
// Register all Forgejo drivers (Container + NPM + Maven + Generic)
registerForgejo({
artifactRegistry: defaultArtifactPublisherRegistry
})2. Granular Registration
You can also import and register only the specific drivers you need:
import { registerArtifactPublisher } from '@ticatec/omniflow-artifact'
import {
ForgejoContainerPublisher,
ForgejoNpmPublisher,
ForgejoMavenPublisher,
ForgejoGenericPublisher
} from '@ticatec/omniflow-forgejo'
// Register specific artifact publishers
registerArtifactPublisher(new ForgejoContainerPublisher())
registerArtifactPublisher(new ForgejoNpmPublisher())
registerArtifactPublisher(new ForgejoMavenPublisher())
registerArtifactPublisher(new ForgejoGenericPublisher())Configuration Example (omniflow.yaml)
In your pipeline configuration, Forgejo registries and Git repositories can share the same server domain and authentication token:
omniflow:
registries:
# 1. Docker / OCI Container Registry
docker:
forgejo:
server: git.mycompany.cn
namespace: myorg
username: myuser
password: ${FORGEJO_TOKEN}
# 2. NPM Package Registry
npm:
forgejo:
server: https://git.mycompany.cn
namespace: myorg
token: ${FORGEJO_TOKEN}
# 3. Maven Package Registry
maven:
forgejo:
server: https://git.mycompany.cn
namespace: myorg
token: ${FORGEJO_TOKEN}
# 4. Generic Binary / Frontend Archive Registry
generic:
forgejo:
server: https://git.mycompany.cn
namespace: myorg
token: ${FORGEJO_TOKEN}Publishing Examples
Direct HTTP Maven JAR Upload (No Maven CLI Required)
import { publishArtifact } from '@ticatec/omniflow-artifact'
await publishArtifact({
type: 'maven',
name: 'order-service',
tags: ['1.0.0'],
source: './target/order-service-1.0.0.jar',
metadata: {
groupId: 'com.myorg',
artifactId: 'order-service'
}
})Generic Frontend Tarball / Binary Upload
import { publishArtifact } from '@ticatec/omniflow-artifact'
await publishArtifact({
type: 'generic',
name: 'portal-frontend',
tags: ['v2.1.0'],
source: './dist/portal-v2.1.0.tar.gz'
})License
MIT License.
