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
Synchronising users to Gitlab is now complete.
Included examples for excluding disabled LDAP user accounts.
User and group names to ignore are now case-insensitive.
Added potential feature: Specifying an attribute on the LDAP user in which this script could write back a user ID for each Gitlab instance.
Added potential feature: Likely the same as the above but for groups too. (Group renaming.)
Copy file name to clipboardExpand all lines: README.md
+11-7Lines changed: 11 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,14 +14,14 @@ What is complete:
14
14
15
15
* Reading users from LDAP
16
16
* Reading groups from LDAP
17
+
* Synchronising users to Gitlab
17
18
* Synchronising groups to Gitlab
18
19
19
20
What is left to-do:
20
21
21
-
* Synchronising users to Gitlab
22
22
* Synchronising group memberships to Gitlab
23
23
24
-
**For now always use the dry run `-d` option to prevent writing to Gitlab. You have been warned.**
24
+
**If in doubt use the dry run `-d` option to prevent writing to Gitlab first, combined with `-vv` to see exactly what would happen. You have been warned.**
25
25
26
26
## Getting Started
27
27
@@ -129,8 +129,8 @@ Default: *null*
129
129
130
130
Specify a search filter for finding user objects within the above DN.
131
131
132
-
* For Microsoft Active Directory this is typically "(objectClass=user)".
133
-
* For OpenLDAP and 389-DS this is typically "(objectClass=inetOrgPerson)".
132
+
* For Microsoft Active Directory this is typically "(&(objectCategory=person)(objectClass=user))", though if you want to exclude disabled users, use "(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))".
133
+
* For OpenLDAP and 389-DS this is typically "(objectClass=inetOrgPerson)", though if you want to exclude 389-DS disabled users, use "(&(objectClass=inetOrgPerson)(!(nsAccountLock=true)))".
134
134
135
135
Default: "(objectClass=inetOrgPerson)"
136
136
@@ -196,7 +196,7 @@ This section configures how to communicate with your Gitlab-CE instance.
196
196
197
197
##### userNamesToIgnore *(array|null)*
198
198
199
-
Specify a list of user names of which this tool should ignore. (Case-sensitive.)
199
+
Specify a list of user names of which this tool should ignore. (Case-insensitive.)
200
200
201
201
This varies not only according to which directory software you're using, but also how your directory has been structured.
202
202
@@ -219,7 +219,7 @@ Default: *null*
219
219
220
220
##### groupNamesToIgnore *(array|null)*
221
221
222
-
Specify a list of group names of which this tool should ignore. (Case-sensitive.)
222
+
Specify a list of group names of which this tool should ignore. (Case-insensitive.)
223
223
224
224
This varies not only according to which directory software you're using, but also how your directory has been structured. You do not have to specify every group if you've left the "createEmptyGroups" setting (further down) switched off, as this will prevent groups containing no users to be ignored anyway.
I don't have anything further planned as this fulfils my purpose.
350
+
* Specifying an attribute on the LDAP user in which this script could write back a user ID for each Gitlab instance.
351
+
* This would mean user name (UID) changes in LDAP could be detected and synchronised automatically without user duplication happening.
352
+
* It would likely be a string attribute in the form of `instanceName:userId`, for example `athena:3` and `demeter:15`.
353
+
* It could either be a multi-value attribute to handle multiple Gitlab instances, or a single-value attribute split by a semi-colon, for example `athena:3;demeter:15`.
354
+
* Likely the same as the above but for groups too. (Group renaming.)
0 commit comments