2021-12-07 22:06:02 -03:00
# Resource not accessible by integration
2022-12-14 12:16:24 -03:00
When using GitHub Actions, you might feel tempted to use the action-bound
`GITHUB_TOKEN` .
2021-12-07 22:06:02 -03:00
2022-12-14 12:16:24 -03:00
While it is a good practice, and should work for most cases, if your workflow
writes a file in another repository, you may see this error:
2021-12-07 22:06:02 -03:00
```sh
⨯ release failed after 430.85s error=homebrew tap formula: failed to publish artifacts: PUT https://api.github.com/repos/user/homebrew-tap/contents/Formula/scorecard.rb: 403 Resource not accessible by integration []
```
Integrations that may cause this:
- Homebrew Tap
- Krew Plugins
## Fixing it
You have basically two options:
### 1. Use a Personal Access Token (PAT) for the entire process
You can create a PAT and use it for the entire GoReleaser action run.
You'll need to add it as secret and pass it to the action, for instance:
```yaml
2021-12-23 01:52:01 +01:00
# .github/workflows/goreleaser.yaml
2021-12-07 22:06:02 -03:00
# ...
2022-12-14 12:16:24 -03:00
- uses: goreleaser/goreleaser-action@v4
2021-12-07 22:06:02 -03:00
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
# ...
```
### 2. Use a Personal Access Token (PAT) specifically for the integration
You can also create a PAT for each integration.
Let's see, for example, how it would look like for Homebrew Taps.
We would need to change the workflow file:
```yaml
2021-12-23 01:52:01 +01:00
# .github/workflows/goreleaser.yaml
2021-12-07 22:06:02 -03:00
# ...
2022-12-14 12:16:24 -03:00
- uses: goreleaser/goreleaser-action@v4
2021-12-07 22:06:02 -03:00
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAP_GITHUB_TOKEN: ${{ secrets.TAP_GITHUB_TOKEN }}
# ...
```
And also the `.goreleaser.yaml` file:
```yaml
# .goreleaser.yaml
# ...
brews:
- name: myproject
tap:
owner: user
name: homebrew-tap
token: "{{ .Env.TAP_GITHUB_TOKEN }}"
# ...
```
## Learning more
Read the documentation for each topic:
- [GitHub ](/scm/github/ )
- [GitHub Actions ](/ci/actions/ )
- [Homebrew Tap ](/customization/homebrew/ )
- [Krew Plugin Manifests ](/customization/krew/ )
- [Scoop Manifests ](/customization/scoop/ )