You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: BOT_ALLOWLIST.md
+15-14Lines changed: 15 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,26 +6,27 @@ This can be done on the GitHub organization level by setting the `skip_cla` prop
6
6
7
7
Replace `{stage}` with either `dev` or `prod`.
8
8
9
-
This property is a Map attribute that contains mapping from repository pattern to bot GitHub login, email and name pattern.
9
+
This property is a map attribute that contains mapping from repository pattern to bot GitHub login, email and name pattern.
10
10
11
11
Example `login` is `lukaszgryglicki` (like any `login` that can be accessed via `https://github.com/login`).
12
12
13
13
This is sometimes called `username` but we use `login` to avoid confusion with the `name` attribute.
14
14
15
15
Example name is `"Lukasz Gryglicki"`.
16
16
17
-
Email pattern and name pattern are optional and `*` is assumed for them if not specified.
17
+
Email pattern and name pattern are optional and `""` (empty) is assumed for them if not specified.
18
18
19
19
Each pattern is a string and can be one of three possible types (and are checked tin this order):
20
20
-`"name"` - exact match for repository name, GitHub login, email address, GitHub name.
21
+
-`""` - (empty string) pattern is special and it matches missing property, property with null value or property with empty string value.
21
22
-`"re:regexp"` - regular expression match for repository name, GitHub login, name, or email address.
22
23
-`"*"` - matches all.
23
24
24
25
So the format is like `"repository_pattern": "login_pattern;email_pattern;name_pattern"`. `;` is used as a separator.
25
26
26
27
You can also specify multiple patterns so different set is used for multiple users - in such case configuration must start with `[`, end with `]` and be `||` separated.
27
28
28
-
For example: `"[copilot-swe-agent[bot];*;*||re:(?i)^l(ukasz)?gryglicki$;*;re:Gryglicki]"`.
29
+
For example: `"[;*;copilot-swe-agent[bot];||re:(?i)^l(ukasz)?gryglicki$;*;re:Gryglicki]"`.
29
30
30
31
Full format is like `"repository_pattern": "[login_pattern;email_pattern;name_pattern||..]"`.
@@ -65,19 +66,19 @@ Algorithm to match pattern is as follows:
65
66
- First we check repository name for exact match. Repository name is without the organization name, so for `https://github.com/linuxfoundation/easycla` it is just `easycla`. If we find an entry in `skip_cla` for `easycla` that entry is used and we stop searching.
66
67
- If no exact match is found, we check for regular expression match. Only keys starting with `re:` are considered. If we find a match, we use that entry and stop searching.
67
68
- If no match is found, we check for `*` entry. If it exists, we use that entry and stop searching.
68
-
- If no match is found, we don't skip CLA check.
69
+
- If no match is found, we don't skip CLA check for any author.
69
70
- Now when we have the entry, it is in the following format: `login_pattern;email_pattern;name_pattern` or `"[login_pattern;email_pattern;name_pattern||...]" (array)`.
70
-
- We check GitHub login, email address and name against the patterns. Algorithm is the same - login, email and name patterns can be either direct match or `re:regexp` or `*`.
71
+
- We check GitHub login, email address and name against the patterns. Algorithm is the same - login, email and name patterns can be either direct match ("" is a special case that also matches missing or null) or `re:regexp` or `*`.
71
72
- If login, email and name match the patterns, we skip CLA check. If login, email or name is not set but the pattern is `*` it means hit.
72
-
- So setting pattern to `login_pattern;*;*`or `login_pattern` (which is equivalent) means that we only check for login match and assume all emails and names are valid.
73
+
- So setting pattern to `login_pattern;*;*` means that we only check for login match and assume all emails and names are valid.
73
74
- Any actor that matches any of the entries in the array will be skipped (logical OR).
74
75
- If we set `repo_pattern` to `*` it means that this configuration applies to all repositories in the organization.
75
76
- If there are also specific repository patterns, they will be used instead of `*` (fallback for all).
76
77
77
78
78
79
There is a script that allows you to update the `skip_cla` property in the DynamoDB table. It is located in `utils/skip_cla_entry.sh`. You can run it like this:
Copy file name to clipboardExpand all lines: cla-backend-go/swagger/common/github-organization.yaml
+8-6Lines changed: 8 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -77,24 +77,26 @@ properties:
77
77
Map of repository name or pattern (e.g. 'repo1', '*', 're:pattern') to a string or array-string of pattern entries for skipping CLA checks for certain bots.
78
78
79
79
Each value can be either:
80
-
- A string in the form '<login_pattern>;<email_pattern>;<name_pattern>' (email and name patterns are optional, default to '*').
80
+
- A string in the form '<login_pattern>;<email_pattern>;<name_pattern>' (email and name patterns are optional, default to '').
81
81
- Or an OR-array in the form '[<entry1>||<entry2>||...]', where each entry uses the same pattern format above.
82
82
83
83
Patterns can be:
84
84
- An exact match (e.g. 'repo1', 'login', 'Name Surname', 'email@domain').
85
+
- A special case of exact match is '' pattern - it matches empty string, null property value or missing property.
85
86
- A regular expression prefixed with 're:' (e.g. 're:(?i)^bot.*$').
0 commit comments