agentsclimarketplace

Alicloud cr

Skill ComeOnOliver/skillshub/skills/agents-infrastructure/alicloud-agent-skills/alicloud-cr

Manage Alibaba Cloud Container Registry (ACR) Enterprise Edition using the @alicloud/cr20181201 TypeScript SDK. Use when working with container image registries on Alibaba Cloud, including instance management, namespaces, image repositories, image tags, build rules, image synchronization, security scanning, delivery chains, Helm charts, artifact lifecycle, and event notifications. Covers all 115 APIs of the CR 20181201 version.From its SKILL.md

Install
npx -y skills add ComeOnOliver/skillshub --skill alicloud-cr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its file declares

Copied from the file, not written here

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.0 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Alibaba Cloud Container Registry (ACR) Skill

Manage Alibaba Cloud Container Registry Enterprise Edition instances, namespaces, repositories, images, builds, sync, security scanning, delivery chains, and Helm charts via the @alicloud/cr20181201 TypeScript SDK.

Prerequisites

Install the SDK and configure credentials before calling any API:

npm install @alicloud/cr20181201 @alicloud/openapi-core @darabonba/typescript
export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-key-secret>"
export ALIBABA_CLOUD_REGION_ID="cn-hangzhou"

See scripts/setup_client.ts for a reusable client factory, and references/quickstart.md for full setup details including regions, error handling, and pagination.

Client Initialization

import Client from '@alicloud/cr20181201';
import { Config } from '@alicloud/openapi-core';

const client = new Client(new Config({
  accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
  accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
  regionId: 'cn-hangzhou',
  endpoint: 'cr.cn-hangzhou.aliyuncs.com',
}));

API Overview (115 APIs in 12 Domains)

DomainAPIsKey OperationsReference
Instance16listInstance, getInstance, getInstanceUsage, getAuthorizationTokenreferences/instance.md
Namespace5createNamespace, listNamespace, deleteNamespacereferences/namespace.md
Repository12createRepository, listRepository, getRepository, createRepoTriggerreferences/repository.md
Image Tag4createRepoTag, listRepoTag, deleteRepoTagreferences/image-tag.md
Build11createRepoBuildRule, listRepoBuildRecord, getRepoBuildRecordStatusreferences/build.md
Sync8createRepoSyncRule, createRepoSyncTask, listRepoSyncTaskreferences/sync.md
Security11createRepoTagScanTask, listRepoTagScanResult, createScanRulereferences/security.md
Artifact19createArtifactBuildRule, createArtifactLifecycleRule, createArtifactSubscriptionRulereferences/artifact.md
Delivery Chain6createChain, listChain, listChainInstancereferences/chain.md
Helm Chart12createChartNamespace, createChartRepository, listChartReleasereferences/chart.md
Event Center4updateEventCenterRule, listEventCenterRecordreferences/event.md
Tag & Resource7tagResources, listTagResources, createStorageDomainRoutingRulereferences/tag-resource.md

Core Patterns

Almost All APIs Require instanceId

Get it first via listInstance:

const { body } = await client.listInstance({ pageNo: 1, pageSize: 30 });
const instanceId = body.instances?.[0]?.instanceId;

Pagination

List APIs use pageNo + pageSize. Loop until results are fewer than pageSize:

let page = 1, all: any[] = [];
while (true) {
  const { body } = await client.listRepository({ instanceId, pageNo: page, pageSize: 30 });
  all.push(...(body.repositories || []));
  if (!body.repositories || body.repositories.length < 30) break;
  page++;
}

Error Handling

try {
  await client.someApi(request);
} catch (err: any) {
  console.error(`Code: ${err.code}, Message: ${err.message}, RequestId: ${err.data?.RequestId}`);
}

Common Workflows

1. Create Repository

listInstance → createNamespace → createRepository

2. Cross-Region Sync

createRepoSyncRule → createRepoSyncTask → getRepoSyncTask (poll)

3. Security Scan

createRepoTagScanTask → getRepoTagScanStatus (poll) → listRepoTagScanResult

4. Auto-Build from Git

createRepoSourceCodeRepo → createRepoBuildRule → (push triggers build)

5. Artifact Lifecycle

createArtifactLifecycleRule → listArtifactLifecycleRule

See references/workflows.md for detailed workflow examples with full code.

API Reference Quick Index

When you need parameter details for a specific API, load the corresponding reference file:

  • Instance/Auth/Endpoint: references/instance.md
  • Namespace CRUD: references/namespace.md
  • Repository/Trigger/SourceCode: references/repository.md
  • Image Tags: references/image-tag.md
  • Build Rules/Records/Logs: references/build.md
  • Sync Rules/Tasks: references/sync.md
  • Scan Rules/Tasks/Results: references/security.md
  • Artifact Build/Lifecycle/Subscription: references/artifact.md
  • Delivery Chain: references/chain.md
  • Helm Chart Namespace/Repo/Release: references/chart.md
  • Event Rules/Records: references/event.md
  • Tags/Storage Routing: references/tag-resource.md

Each reference file contains per-API documentation with parameter tables (name, type, required, description, example).

Code Examples

See scripts/examples.ts for ready-to-use code covering:

  • Instance listing and usage queries
  • Namespace and repository creation
  • Image tag listing and deletion
  • Security scan triggering and result retrieval
  • Cross-region sync rule creation
  • Build rule configuration
  • Helm chart repository listing

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.