MCPcopy Create free account
hub / github.com/google/go-github / main

Function main

example/uploadreleaseassetfromrelease/main.go:20–64  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

18)
19
20func main() {
21 token := os.Getenv("GITHUB_AUTH_TOKEN")
22 if token == "" {
23 log.Fatal("GITHUB_AUTH_TOKEN not set")
24 }
25
26 ctx := context.Background()
27 client, err := github.NewClient(github.WithAuthToken(token))
28 if err != nil {
29 log.Fatalf("Error creating GitHub client: %v", err)
30 }
31
32 owner := "OWNER"
33 repo := "REPO"
34 releaseID := int64(1)
35
36 // Fetch the release (UploadURL is populated by the API)
37 release, _, err := client.Repositories.GetRelease(ctx, owner, repo, releaseID)
38 if err != nil {
39 log.Fatalf("GetRelease failed: %v", err)
40 }
41
42 // Asset content
43 data := []byte("Hello from go-github!\n")
44 reader := bytes.NewReader(data)
45 size := int64(len(data))
46
47 opts := &github.UploadOptions{
48 Name: "example.txt",
49 Label: "Example asset",
50 }
51
52 asset, _, err := client.Repositories.UploadReleaseAssetFromRelease(
53 ctx,
54 release,
55 opts,
56 reader,
57 size,
58 )
59 if err != nil {
60 log.Fatalf("UploadReleaseAssetFromRelease failed: %v", err)
61 }
62
63 fmt.Printf("Uploaded asset ID: %v\n", asset.GetID())
64}

Callers

nothing calls this directly

Calls 5

NewClientFunction · 0.92
WithAuthTokenFunction · 0.92
GetReleaseMethod · 0.45
GetIDMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…