Skip to content

✏️ EditPackage

编辑 Packagist 上一个已存在包的仓库地址。

何时使用

✏️ 包迁移到新仓库后更新 Packagist 上的源;🧹 纠正错误的仓库 URL;🔄 仓库改名后同步指向。

签名

go
func (c *ComposerClient) EditPackage(ctx context.Context, packageName string, request *domain.PackageEditRequest) (*domain.PackageEditResponse, error)

参数

参数类型说明
ctxcontext.Context上下文,用于超时与取消
packageNamestring要编辑的包名,如 your-org/your-package
request*domain.PackageEditRequest请求体,Repository 字段为新的仓库 URL

返回值

类型说明
结果*domain.PackageEditResponseStatus 字段表示操作状态
错误error凭据缺失、HTTP 失败、非 200、JSON 解析失败时返回

对应端点(PUT):https://packagist.org/api/packages/{name}?username={u}&apiToken={t}。SDK 会对 packageName 做 URL 编码。

示例

go
package main

import (
	"context"
	"fmt"
	"log"
	"time"

	"github.com/scagogogo/composer-skills/pkg/client"
	"github.com/scagogogo/composer-skills/pkg/domain"
)

func main() {
	c := client.NewComposerClient(
		30*time.Second,
		client.WithAPICredentials("your-username", "your-api-token"),
	)

	req := &domain.PackageEditRequest{
		Repository: "https://github.com/your-org/your-package-new",
	}
	resp, err := c.EditPackage(context.Background(), "your-org/your-package", req)
	if err != nil {
		log.Fatalf("编辑失败: %v", err)
	}
	fmt.Printf("状态: %s\n", resp.Status)
}

进阶

凭据与权限

本方法需 API 凭据(WithAPICredentials),且当前用户须为该包的维护者,否则服务端会拒绝。PUT 请求会整体覆盖仓库地址字段。

基于 MIT 许可证发布