Version 2.2 by chrisby on 2025/04/22 14:13

Show last authors
1
2 ### GitHub Actions
3
4 The GitHub actions are used for CI purposes. One job is auto update, which can be enabled as follows:
5 * Repo > Settings >
6 * General >
7 * Pull Requests > enable "Allow auto-merge".
8 * Branches > Add classic branch protection rule
9 * Branch name pattern: main
10 * Enable "Require status checks to pass before merging".
11 * Actions > General > Workflow permissions > enable "Allow GitHub Actions to create and approve pull requests"
12 * If option is greyed out, then probably the project policy is dictated by the repository policy. Simply do this in repository settings then.
13 * Copy the workflow file from this project. The key configs are the "permissions" to include "contents: write, pull-requests: write" and the "auto-merge" step.
14
15 If you don't need a private module from the same repository, you must delete the "Authenticate for private modules" job. Otherwise, the following steps are necessary:
16 * GitHub > Profile > Settings > Developer Settings > Personal Access Tokens > Tokens (classic) > Generate new token
17 * Name: ACTIONS_TOKEN
18 * Select scopes: "repo"
19 * Copy the token
20 * Repo > Settings > Secrets and variables > Actions > New repository secret >
21 * Name: MY_TOKEN
22 * You need to set "environment: MY_TOKEN" in the workflow file to use its environment secrets
23 * Environment Secrets > Add environment secret
24 * Name: ACTIONS_TOKEN
25 * Value: <the token you copied before>
26
27 Add this to the workflow file:
28
29 ```yaml
30 - name: Authenticate for private modules
31 env:
32 ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
33 run: |
34 git config --global url."https://${ACTIONS_TOKEN}:x-oauth-basic@github.com/".insteadOf "https://github.com/"
35 go env -w GOPRIVATE=github.com/ocelot-cloud/*
36 ```
37
38 ### Private Go Repository Dependency
39
40 If you are developing with Go and need a private repository as a dependency, you need to tell the SDK to use SSH instead of HTTPS to get access.
41
42 ```bash
43 git config --global url."ssh://git@github.com/".insteadOf "https://github.com/"
44 go env -w GOPRIVATE=github.com/ocelot-cloud/*
45 ```