Skip to content

Commit f82d6c1

Browse files
authored
fix: don't depend on the GitHub API to check release (#391)
* fix: don't depend on the GitHub API to check release * chore: update generated content --------- Co-authored-by: CrazyMax <[email protected]>
1 parent 9754a25 commit f82d6c1

File tree

16 files changed

+101
-825
lines changed

16 files changed

+101
-825
lines changed

.github/workflows/test.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ on:
66
- 'master'
77
- 'releases/v*'
88
pull_request:
9-
branches:
10-
- 'master'
11-
- 'releases/v*'
129

1310
jobs:
1411
test:
@@ -29,8 +26,6 @@ jobs:
2926
uses: docker/bake-action@v2
3027
with:
3128
targets: test
32-
env:
33-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3429
-
3530
name: Upload coverage
3631
uses: codecov/codecov-action@v3

README.md

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ ___
2020
* [Signing](#signing)
2121
* [Upload artifacts](#upload-artifacts)
2222
* [Install Only](#install-only)
23-
* [Using on GHES](#using-on-ghes)
2423
* [Customizing](#customizing)
2524
* [inputs](#inputs)
2625
* [outputs](#outputs)
@@ -163,37 +162,6 @@ steps:
163162
name: Show GoReleaser version
164163
run: goreleaser -v
165164
```
166-
### Using on GHES
167-
168-
If you specify a version or `latest` of GoReleaser in your workflow, the
169-
version will be downloaded from [GitHub Releases in
170-
`goreleaser/goreleaser`](https://github.com/goreleaser/goreleaser/releases)
171-
repository. These calls to `goreleaser/goreleaser` are made via unauthenticated
172-
requests, which are limited to [60 requests per hour per
173-
IP](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting).
174-
175-
If more requests are made within the time frame, then you will start to see
176-
rate-limit errors during downloading that looks like:
177-
178-
```
179-
##[error]API rate limit exceeded for...
180-
```
181-
182-
To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new)
183-
and pass it as the `github_token` input for the action:
184-
185-
```yaml
186-
uses: goreleaser/goreleaser-action@v4
187-
with:
188-
github_token: ${{ secrets.GH_DOTCOM_TOKEN }}
189-
version: v1.14.1
190-
```
191-
192-
If the runner is not able to access `github.com`, it will take the default one
193-
available on the GitHub Runner or runner's tool cache. See "[Setting up the
194-
tool cache on self-hosted runners without internet
195-
access](https://docs.github.com/en/[email protected]/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)"
196-
for more information.
197165

198166
## Customizing
199167

@@ -215,17 +183,17 @@ Following inputs can be used as `step.with` keys
215183

216184
Following outputs are available
217185

218-
| Name | Type | Description |
219-
|-------------------|---------|---------------------------------------|
220-
| `artifacts` | JSON | Build result artifacts |
221-
| `metadata` | JSON | Build result metadata |
186+
| Name | Type | Description |
187+
|-------------|------|------------------------|
188+
| `artifacts` | JSON | Build result artifacts |
189+
| `metadata` | JSON | Build result metadata |
222190

223191
### environment variables
224192

225193
Following environment variables can be used as `step.env` keys
226194

227-
| Name | Description |
228-
|------------------|---------------------------------------|
195+
| Name | Description |
196+
|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
229197
| `GITHUB_TOKEN` | [GITHUB_TOKEN](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token) as provided by `secrets` |
230198
| `GORELEASER_KEY` | Your [GoReleaser Pro](https://goreleaser.com/pro) License Key, in case you are using the `goreleaser-pro` distribution |
231199

__tests__/github.test.ts

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,52 @@
11
import {describe, expect, it} from '@jest/globals';
22
import * as github from '../src/github';
33

4-
describe('github', () => {
4+
describe('getRelease', () => {
55
it('returns latest GoReleaser GitHub release', async () => {
6-
const githubToken = process.env.GITHUB_TOKEN || '';
7-
const release = await github.getRelease('goreleaser', 'latest', githubToken);
6+
const release = await github.getRelease('goreleaser', 'latest');
87
expect(release).not.toBeNull();
98
expect(release?.tag_name).not.toEqual('');
109
});
1110

1211
it('returns v0.182.0 GoReleaser GitHub release', async () => {
13-
const githubToken = process.env.GITHUB_TOKEN || '';
14-
const release = await github.getRelease('goreleaser', 'v0.182.0', githubToken);
12+
const release = await github.getRelease('goreleaser', 'v0.182.0');
1513
expect(release).not.toBeNull();
1614
expect(release?.tag_name).toEqual('v0.182.0');
1715
});
1816

1917
it('returns v0.182.1 GoReleaser GitHub release', async () => {
20-
const githubToken = process.env.GITHUB_TOKEN || '';
21-
const release = await github.getRelease('goreleaser', '~> 0.182', githubToken);
18+
const release = await github.getRelease('goreleaser', '~> 0.182');
2219
expect(release).not.toBeNull();
2320
expect(release?.tag_name).toEqual('v0.182.1');
2421
});
2522

23+
it('unknown GoReleaser release', async () => {
24+
await expect(github.getRelease('goreleaser', 'foo')).rejects.toThrowError(
25+
new Error('Cannot find GoReleaser release foo in https://goreleaser.com/static/releases.json')
26+
);
27+
});
28+
2629
it('returns latest GoReleaser Pro GitHub release', async () => {
27-
const githubToken = process.env.GITHUB_TOKEN || '';
28-
const release = await github.getRelease('goreleaser-pro', 'latest', githubToken);
30+
const release = await github.getRelease('goreleaser-pro', 'latest');
2931
expect(release).not.toBeNull();
3032
expect(release?.tag_name).not.toEqual('');
3133
});
3234

33-
it('returns v0.182.0-pro GoReleaser Pro GitHub release', async () => {
34-
const githubToken = process.env.GITHUB_TOKEN || '';
35-
const release = await github.getRelease('goreleaser-pro', 'v0.182.0-pro', githubToken);
35+
it('returns v0.182.0 GoReleaser Pro GitHub release', async () => {
36+
const release = await github.getRelease('goreleaser-pro', 'v0.182.0');
3637
expect(release).not.toBeNull();
3738
expect(release?.tag_name).toEqual('v0.182.0-pro');
3839
});
3940

40-
it('returns v0.182.1-pro GoReleaser Pro GitHub release when using semver', async () => {
41-
const githubToken = process.env.GITHUB_TOKEN || '';
42-
const release = await github.getRelease('goreleaser-pro', '~> 0.182', githubToken);
41+
it('returns v0.182.1 GoReleaser Pro GitHub release', async () => {
42+
const release = await github.getRelease('goreleaser-pro', '~> 0.182');
4343
expect(release).not.toBeNull();
4444
expect(release?.tag_name).toEqual('v0.182.1-pro');
4545
});
46+
47+
it('unknown GoReleaser Pro release', async () => {
48+
await expect(github.getRelease('goreleaser-pro', 'foo')).rejects.toThrowError(
49+
new Error('Cannot find GoReleaser release foo-pro in https://goreleaser.com/static/releases-pro.json')
50+
);
51+
});
4652
});

__tests__/goreleaser.test.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,22 @@ import * as goreleaser from '../src/goreleaser';
44

55
describe('install', () => {
66
it('acquires v0.182.0 version of GoReleaser', async () => {
7-
const githubToken = process.env.GITHUB_TOKEN || '';
8-
const bin = await goreleaser.install('goreleaser', 'v0.182.0', githubToken);
7+
const bin = await goreleaser.install('goreleaser', 'v0.182.0');
98
expect(fs.existsSync(bin)).toBe(true);
109
}, 100000);
1110

1211
it('acquires latest version of GoReleaser', async () => {
13-
const githubToken = process.env.GITHUB_TOKEN || '';
14-
const bin = await goreleaser.install('goreleaser', 'latest', githubToken);
12+
const bin = await goreleaser.install('goreleaser', 'latest');
1513
expect(fs.existsSync(bin)).toBe(true);
1614
}, 100000);
1715

1816
it('acquires v0.182.0-pro version of GoReleaser Pro', async () => {
19-
const githubToken = process.env.GITHUB_TOKEN || '';
20-
const bin = await goreleaser.install('goreleaser-pro', 'v0.182.0-pro', githubToken);
17+
const bin = await goreleaser.install('goreleaser-pro', 'v0.182.0-pro');
2118
expect(fs.existsSync(bin)).toBe(true);
2219
}, 100000);
2320

2421
it('acquires latest version of GoReleaser Pro', async () => {
25-
const githubToken = process.env.GITHUB_TOKEN || '';
26-
const bin = await goreleaser.install('goreleaser-pro', 'latest', githubToken);
22+
const bin = await goreleaser.install('goreleaser-pro', 'latest');
2723
expect(fs.existsSync(bin)).toBe(true);
2824
}, 100000);
2925
});

action.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,6 @@ inputs:
2626
description: 'Just install GoReleaser'
2727
default: 'false'
2828
required: false
29-
github-token:
30-
description: >
31-
Used to verifiy the Git tag exists on goreleaser/goreleaser repo. Since there's a
32-
default, this is typically not supplied by the user. When running this
33-
action on github.com, the default value is sufficient. When running on
34-
GHES, you can pass a personal access token for github.com if you are
35-
experiencing rate limiting.
36-
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
37-
required: false
3829

3930
outputs:
4031
artifacts:

dev.Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ ENV RUNNER_TEMP=/tmp/github_runner
6565
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
6666
RUN --mount=type=bind,target=.,rw \
6767
--mount=type=cache,target=/src/node_modules \
68-
--mount=type=secret,id=GITHUB_TOKEN \
69-
GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) yarn run test --coverageDirectory=/tmp/coverage
68+
yarn run test --coverageDirectory=/tmp/coverage
7069

7170
FROM scratch AS test-coverage
7271
COPY --from=test /tmp/coverage /

dist/index.js

Lines changed: 1 addition & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)