On 14 November 2017 at 19:37, <[email protected]> wrote:
> This is an automated email from the ASF dual-hosted git repository.
>
> rubys pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/whimsy.git
>
>
> The following commit(s) were added to refs/heads/master by this push:
> new fa27e72 Class to encapsulate the adding and removal of committers
> fa27e72 is described below
>
> commit fa27e722436b7650b1c67bf8289729de750537e4
> Author: Sam Ruby <[email protected]>
> AuthorDate: Tue Nov 14 14:36:42 2017 -0500
>
> Class to encapsulate the adding and removal of committers
> ---
> lib/whimsy/asf/ldap.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/lib/whimsy/asf/ldap.rb b/lib/whimsy/asf/ldap.rb
> index 2121ce5..6027c76 100644
> --- a/lib/whimsy/asf/ldap.rb
> +++ b/lib/whimsy/asf/ldap.rb
> @@ -505,6 +505,50 @@ module ASF
> end
> end
>
> + # Manage committers: list, add, and remove people not only from the list
> + # of people, but from the list of committers.
> + class Committer < Base
> + @base = 'ou=role,ou=groups,dc=apache,dc=org'
> +
> + # get a list of committers
> + def self.list()
> + ASF.search_one(base, 'cn=committers', 'member').flatten.
> + map {|uid| Person.find uid[/uid=(.*?),/,1]}
> + end
> +
> + # add a new committer to LDAP. Attrs must include uid, cn, and mail
> + def self.add(attrs)
> + # add person to LDAP
> + person = ASF::Person.add(attrs)
> +
> + # add person to 'new' committers list
> + ASF::LDAP.modify("cn=committers,#@base",
> + [ASF::Base.mod_add('member', [person.dn])])
> +
> + # add person to 'legacy' committers list
> + ASF::Group['committers'].add(person)
> +
> + # return new person
> + person
> + end
> +
> + # remove a committer from LDAP
> + def self.remove(person)
> + # if person is a string, find the person object
> + person = ASF::Person[person] if person.instance_of? String
> +
> + # remove person to 'legacy' committers list, ignoring exceptions
> + ASF::Group['committers'].add(person) rescue nil
Comment does not agree with code; it's not clear which is correct.
> +
> + # remove person from 'new' committers list, ignoring exceptions
> + ASF::LDAP.modify("cn=committers,#@base",
> + [ASF::Base.mod_delete('member', [person.dn])]) rescue nil
> +
> + # remove person from LDAP
> + ASF::Person.remove(person.id)
> + end
> + end
> +
> class Person < Base
> @base = 'ou=people,dc=apache,dc=org'
>
>
> --
> To stop receiving notification emails like this one, please contact
> ['"[email protected]" <[email protected]>'].