Skip to content

Commit 09e8a66

Browse files
authored
[api] Add token service functions (#281)
## Summary Forgot to add these. Needed for devbox. ## How was it tested? Builds
1 parent bd03f1a commit 09e8a66

4 files changed

Lines changed: 134 additions & 1 deletion

File tree

api/tokens.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package api
2+
3+
import (
4+
"context"
5+
6+
"connectrpc.com/connect"
7+
tokenservicev1alpha1 "go.jetpack.io/pkg/api/gen/priv/tokenservice/v1alpha1"
8+
"go.jetpack.io/pkg/ids"
9+
)
10+
11+
func (c *Client) GetAccessToken(
12+
ctx context.Context,
13+
pat ids.PersonalAccessToken,
14+
) (*tokenservicev1alpha1.GetAccessTokenResponse, error) {
15+
response, err := c.tokenClient().GetAccessToken(
16+
ctx,
17+
connect.NewRequest(&tokenservicev1alpha1.GetAccessTokenRequest{
18+
Token: pat.String(),
19+
}),
20+
)
21+
if err != nil {
22+
return nil, err
23+
}
24+
return response.Msg, nil
25+
}
26+
27+
func (c *Client) CreatePAT(
28+
ctx context.Context,
29+
) (*tokenservicev1alpha1.CreatePATResponse, error) {
30+
response, err := c.tokenClient().CreatePAT(
31+
ctx,
32+
connect.NewRequest(&tokenservicev1alpha1.CreatePATRequest{}),
33+
)
34+
if err != nil {
35+
return nil, err
36+
}
37+
return response.Msg, nil
38+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module go.jetpack.io/pkg
22

3-
go 1.20
3+
go 1.21
44

55
require (
66
connectrpc.com/connect v1.16.0

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ connectrpc.com/connect v1.16.0/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8x
33
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 h1:wPbRQzjjwFc0ih8puEVAOFGELsn1zoIIYdxvML7mDxA=
44
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g=
55
github.com/arduino/go-paths-helper v1.2.0 h1:qDW93PR5IZUN/jzO4rCtexiwF8P4OIcOmcSgAYLZfY4=
6+
github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck=
67
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
78
github.com/cavaliergopher/grab/v3 v3.0.1 h1:4z7TkBfmPjmLAAmkkAZNX/6QJ1nNFdv3SdIHXju0Fr4=
89
github.com/cavaliergopher/grab/v3 v3.0.1/go.mod h1:1U/KNnD+Ft6JJiYoYBAimKH2XrYptb8Kl3DFGmsjpq4=
@@ -60,7 +61,9 @@ github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3t
6061
github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0=
6162
github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
6263
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
64+
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
6365
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
66+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
6467
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
6568
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
6669
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@@ -75,6 +78,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
7578
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
7679
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7780
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
81+
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
7882
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
7983
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
8084
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
@@ -102,6 +106,7 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
102106
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
103107
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
104108
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
109+
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
105110
golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
106111
golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
107112
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -148,7 +153,9 @@ google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGm
148153
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
149154
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
150155
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
156+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
151157
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
158+
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
152159
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
153160
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
154161
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

ids/ids.go

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package ids
2+
3+
// We have a similar package in our opensource repo, ensure the prefix
4+
// strings match (or figure out how to share a single package across bith
5+
// repos)
6+
7+
import (
8+
"go.jetpack.io/typeid"
9+
)
10+
11+
type userPrefix struct{}
12+
13+
func (userPrefix) Prefix() string { return "user" }
14+
15+
type UserID struct {
16+
typeid.TypeID[userPrefix]
17+
}
18+
19+
type projectPrefix struct{}
20+
21+
func (projectPrefix) Prefix() string { return "proj" }
22+
23+
type ProjectID struct {
24+
typeid.TypeID[projectPrefix]
25+
}
26+
27+
type repoPrefix struct{}
28+
29+
func (repoPrefix) Prefix() string { return "repo" }
30+
31+
type RepoID struct {
32+
typeid.TypeID[repoPrefix]
33+
}
34+
35+
type orgPrefix struct{}
36+
37+
func (orgPrefix) Prefix() string { return "org" }
38+
39+
type OrgID struct {
40+
typeid.TypeID[orgPrefix]
41+
}
42+
43+
type memberPrefix struct{}
44+
45+
func (memberPrefix) Prefix() string { return "member" }
46+
47+
type MemberID struct {
48+
typeid.TypeID[memberPrefix]
49+
}
50+
51+
type secretPrefix struct{}
52+
53+
func (secretPrefix) Prefix() string { return "secret" }
54+
55+
type SecretID struct{ typeid.TypeID[secretPrefix] }
56+
57+
type deploymentPrefix struct{}
58+
59+
func (deploymentPrefix) Prefix() string { return "deploy" }
60+
61+
type DeploymentID struct {
62+
typeid.TypeID[deploymentPrefix]
63+
}
64+
65+
type customDomainPrefix struct{}
66+
67+
func (customDomainPrefix) Prefix() string { return "customdomain" }
68+
69+
type CustomDomainID struct {
70+
typeid.TypeID[customDomainPrefix]
71+
}
72+
73+
type personalAccessTokenPrefix struct{}
74+
75+
func (personalAccessTokenPrefix) Prefix() string { return "pat" }
76+
77+
type PersonalAccessToken struct {
78+
typeid.TypeID[personalAccessTokenPrefix]
79+
}
80+
81+
func Short[P typeid.PrefixType](tid typeid.TypeID[P]) string {
82+
return ShortStr(tid.String()) // NOTE: len(id.String) >= 26 always
83+
}
84+
85+
// ShortStr returns the last 6 characters of a TypeID's string representation.
86+
func ShortStr(tid string) string {
87+
return tid[max(0, len(tid)-6):]
88+
}

0 commit comments

Comments
 (0)