Welcome to mirror list, hosted at ThFree Co, Russian Federation.

go_proxy.md « packages « api « doc - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2f81435db4255c06e126a31e129482360e14186c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
stage: Package
group: Package
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---

# Go Proxy API

This is the API documentation for [Go Packages](../../user/packages/go_proxy/index.md).
This API is behind a feature flag that is disabled by default. GitLab administrators with access to
the GitLab Rails console can [enable](../../administration/feature_flags.md)
this API for your GitLab instance.

WARNING:
This API is used by the [Go client](https://maven.apache.org/)
and is generally not meant for manual consumption.

For instructions on how to work with the Go Proxy, see the [Go Proxy package documentation](../../user/packages/go_proxy/index.md).

NOTE:
These endpoints do not adhere to the standard API authentication methods.
See the [Go Proxy package documentation](../../user/packages/go_proxy/index.md)
for details on which headers and token types are supported.

## List

> Introduced in GitLab 13.1.

Get all tagged versions for a given Go module:

```plaintext
GET projects/:id/packages/go/:module_name/@v/list
```

| Attribute      | Type   | Required | Description |
| -------------- | ------ | -------- | ----------- |
| `id`           | string | yes      | The project ID or full path of a project. |
| `module_name`  | string | yes      | The name of the Go module. |

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/list"
```

Example output:

```shell
"v1.0.0\nv1.0.1\nv1.3.8\n2.0.0\n2.1.0\n3.0.0"
```

## Version metadata

> Introduced in GitLab 13.1.

Get all tagged versions for a given Go module:

```plaintext
GET projects/:id/packages/go/:module_name/@v/:module_version.info
```

| Attribute         | Type   | Required | Description |
| ----------------- | ------ | -------- | ----------- |
| `id`              | string | yes      | The project ID or full path of a project. |
| `module_name`     | string | yes      | The name of the Go module. |
| `module_version`  | string | yes      | The version of the Go module. |

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.info"
```

Example output:

```json
{
  "Version": "v1.0.0",
  "Time": "1617822312 -0600"
}
```

## Download module file

> Introduced in GitLab 13.1.

Fetch the `.mod` module file:

```plaintext
GET projects/:id/packages/go/:module_name/@v/:module_version.mod
```

| Attribute         | Type   | Required | Description |
| ----------------- | ------ | -------- | ----------- |
| `id`              | string | yes      | The project ID or full path of a project. |
| `module_name`     | string | yes      | The name of the Go module. |
| `module_version`  | string | yes      | The version of the Go module. |

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.mod"
```

Write to a file:

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.mod" >> foo.mod
```

This writes to `foo.mod` in the current directory.

## Download module source

> Introduced in GitLab 13.1.

Fetch the `.zip` of the module source:

```plaintext
GET projects/:id/packages/go/:module_name/@v/:module_version.zip
```

| Attribute         | Type   | Required | Description |
| ----------------- | ------ | -------- | ----------- |
| `id`              | string | yes      | The project ID or full path of a project. |
| `module_name`     | string | yes      | The name of the Go module. |
| `module_version`  | string | yes      | The version of the Go module. |

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.zip"
```

Write to a file:

```shell
curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/go/my-go-module/@v/1.0.0.zip" >> foo.zip
```

This writes to `foo.zip` in the current directory.