-
Notifications
You must be signed in to change notification settings - Fork 69
/
local-workflow-tech.md
50 lines (43 loc) · 2.49 KB
/
local-workflow-tech.md
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
Technicalities underlying the fast-pace local workflow
======================================================
## 🔲 Set up the options of the fork repository
- Create a ruleset that:
- Targets all branches.
- Restricts updates.
- Restricts deletions.
- Blocks force pushes.
- Disable the option `Automatically delete head branches `.
## 🔲 Clone the fork locally
- Clone the `icub-tech-iit` fork:
```console
git remote add icub-tech https://github.com/icub-tech-iit/robots-configuration.git
```
- Switch to the branch corresponding to the robot (e.g., `devel-ergoCubSN???`).
## 🔲 Set the default committer
- Fine-grained PAT can be scoped to work on a specified organization and only on a specified repository.
- To store credentials locally, one needs to issue the following, once the fork is cloned locally:
```console
git config --local user.name "icub-tech-iit-bot"
git config --local user.email "icub-tech@iit.it"
git config --local credential.https://github.com/icub-tech-iit/robots-configuration.git.helper store
```
⚠️ Note the use of the option `--local` to avoid impacting Git globally on the system.
- In order to push without password, the PAT needs to be provided. The credentials will be stored plainly under `~/.git-credentials`. No worries though, as this PAT has a very narrowed use and impacts a fork that is backed up anyhow by the upstream repository.
- The PAT can be stored manually in `~/.git-credentials` with the format `https://icub-tech-iit-bot:${PAT}@github`. Alternatively, when attempting to push the first time, it is enough to use `icub-tech-iit-bot` as user and specifying the `PAT` as password. This will be stored in the `~/.git-credentials` file automatically.
- ⚠️ Being the local system shared, no one else should store his/her PAT in the same file.
- ⌛ The PAT expires after **`1 year`** at the latest, thus needing to be regenerated.
- The upstream maintainer will take care of the PAT.
> [!tip]
> Instead of relying on the credential helper, one can resort to a simpler method:
> ```console
> git remote set-url icub-tech https://x-access-token:${PAT}@github.com/icub-tech-iit/robots-configuration.git
> ```
## 🔲 Ensure that the author information is specified explicitly at commit time
- We do rely on [Git hoooks](../.githooks).
- Run the following command from the `robots-configuration` root folder:
```console
git config --local core.hooksPath .githooks/
```
## 🔲 Detect conflicts at push time and notify PIC
> [!note]
> To be still developed.