This is an automated email from the ASF dual-hosted git repository.

sebb 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 ce39e512 Spurious commit
ce39e512 is described below

commit ce39e512fd9dc7f694b9334dbaa62e8e90b0111f
Author: Sebb <[email protected]>
AuthorDate: Sun Jun 1 21:39:15 2025 +0100

    Spurious commit
---
 www/secretary/icla-lint copy.cgi | 405 ---------------------------------------
 1 file changed, 405 deletions(-)

diff --git a/www/secretary/icla-lint copy.cgi b/www/secretary/icla-lint copy.cgi
deleted file mode 100755
index af04467a..00000000
--- a/www/secretary/icla-lint copy.cgi  
+++ /dev/null
@@ -1,405 +0,0 @@
-#!/usr/bin/env ruby
-
-$LOAD_PATH.unshift '/srv/whimsy/lib'
-
-require 'wunderbar/script'
-require 'ruby2js/filter/functions'
-require 'whimsy/asf'
-
-people = ASF::Person.listids
-committers = ASF.committerids # to check for missing ICLAs
-
-ASF::ICLAFiles.update_cache({})
-
-errors = 0
-
-_html do
-  _style %{
-    table {border-collapse: collapse}
-    table, th, td {border: 1px solid black}
-    td {padding: 3px 6px}
-    tr:hover td {background-color: #FF8}
-    th {background-color: #a0ddf0}
-  }
-
-  _h1 'iclas.txt lint check'
-
-  _h2_ 'LDAP Status'
-  _div do
-    _label "#{people.length} People entries found."
-    _br
-    _label "#{committers.length} committers found."
-  end
-
-  _h2_ 'Error Status'
-  _div do
-    _label "#{errors} errors found."
-  end
-
-  _h2_ 'Show'
-  _div do
-    _input id: 'missing', type: 'checkbox', checked: true
-    _label 'missing stub/dir name after Signed CLA', for: 'missing'
-  end
-
-  _div do
-    _input id: 'extra', type: 'checkbox', checked: true
-    _label 'extra text', for: 'extra'
-  end
-
-  _div do
-    _input id: 'comment', type: 'checkbox', checked: true
-    _label 'parenthetical comment', for: 'comment'
-  end
-
-  _div do
-    _input id: 'error', type: 'checkbox', checked: true
-    _label 'icla not found', for: 'error'
-  end
-
-  _div do
-    _input id: 'mismatch', type: 'checkbox', checked: true
-    _label "doesn't match pattern", for: 'mismatch'
-  end
-
-  _div do
-    _input id: 'notinldap', type: 'checkbox', checked: true
-    _label "id not in LDAP people", for: 'notinldap'
-  end
-
-  _div do
-    _input id: 'notinavail', type: 'checkbox', checked: true
-    _label "notinavail entries", for: 'notinavail'
-  end
-
-  iclafiles = Hash.new{|h,k| h[k]=[]}
-  dupes = 0
-  ASF::ICLAFiles.listnames.each do |file|
-    next if file == '__keys__/'
-    name = File.basename(file)
-    stem = name.sub(/\.\w+$/, '')
-    dupes += 1 if iclafiles.has_key? stem
-    iclafiles[stem] << name
-  end
-
-  seen = Hash.new { |h, k| h[k] = []} # iclas.txt CLA stem values (value = 
id,name)
-  icla_ids = Hash.new { |h, k| h[k] = []} # to check for duplicates and 
missing entries
-  icla_mails = Hash.new { |h, k| h[k] = []} # to check for duplicates
-
-  _h2_ 'Issues'
-
-  _table_ do
-    _tr do
-      _th 'availid'
-      _th 'public name'
-      _th 'issue'
-      _th 'email'
-      _th 'ICLA stub'
-    end
-
-    input = File.join(ASF::SVN['officers'], 'iclas.txt')
-    document = File.read(input)
-    document.scan(/^((\w.*?):.*?:(.*?):(.*?):(.*))/) do |(line, id, name, 
email, comment)|
-      issue, note = nil, nil
-      comment2 = comment.dup
-      claRef = nil
-
-      if comment.sub!(/\s*(\(.*?\))\s*/, '')
-        issue, note = 'comment', "parenthetical comment: #{$1.inspect}"
-      end
-
-      if comment.sub!(/Signed CLA(.+?);/, 'Signed CLA;')
-        issue, note = 'extra', "extra text: #{$1.inspect}"
-      end
-
-      if id != 'notinavail'
-        icla_ids[id] << line
-        apachemail = "," + id + "@apache.org"
-      end
-
-      # check LDAP independently; may be overridden by issues with comment 
field
-      if id != 'notinavail' and people.length > 0 and not people.include? id
-        issue, note = 'notinldap', 'not in LDAP people'
-      end
-      if comment =~ /Signed CLA;(.*)/
-        claRef = $1
-        # to be valid, the entry must exist; also record what we have seen
-        missing = claRef.split(',').reject {|path| seen[path] << 
[id,name,email]; iclafiles.include? path}
-
-        if not missing.empty?
-          issue, note = 'error', "missing icla: #{missing.first.inspect}"
-        end
-        if id != 'notinavail'
-          committers.delete(id) # drop committers that have ICLAs
-        end
-      elsif comment =~ /^Treasurer;/ or comment =~ /^President;/
-
-      elsif comment == 'Signed CLA'
-        issue, note = 'missing', 'missing stub/dir name'
-      elsif comment.start_with? 'disabled;'
-        unless ASF::Person.new(id).banned?
-          issue, note = 'mismatch', "LDAP entry not marked disabled"
-        end
-      else
-        issue, note = 'mismatch', "comment doesn't match pattern"
-      end
-
-      icla_mails[email] << [id, claRef, line]
-
-      if issue
-        issue = "#{issue} notinavail" if id =='notinavail'
-
-        _tr_ class: issue do
-          _td! do
-            if id == 'notinavail' or issue == 'notinldap'
-              _ id
-            else
-              _a id, href: '/roster/committer/' + id
-            end
-          end
-
-          if id != 'notinavail' and ASF::Person.new(id).asf_member?
-            _td! {_b name}
-          else
-            _td name
-          end
-
-          _td do
-            if note.start_with? ('missing') # email only applies to missing 
ICLA currently
-              _button 'email', data_email: "#{name} <#{email}>#{apachemail}",
-                data_issue: note, data_name: name
-            end
-            _span note
-          end
-
-          _td email
-          _td comment2
-        end
-      end
-    end
-  end
-
-  # drop known test entries
-  TEST_ENTRIES = %w(testsebb testrubys testcml testdooh)
-  noiclas = committers.reject {|id| TEST_ENTRIES.include? id}
-
-  _h2 "Committers without an ICLA recorded (#{noiclas.size})"
-
-  if noiclas.size > 0
-    _table do
-      _tr do
-        _th 'id'
-        _th 'Public Name'
-        _th 'Join Date'
-        _th 'Nologin?'
-      end
-      noiclas.each do |id|
-        _tr do
-          _td do
-            _a id, href: '/roster/committer/' + id
-          end
-          _td ASF::Person[id].public_name
-          _td ASF::Person[id].createDate
-          _td ASF::Person[id].nologin?
-        end
-      end
-    end
-  else
-    _ 'All committers have ICLAs'
-  end
-
-  if dupes > 0
-    _h2_ 'Files with duplicate stems'
-    _table_ do
-      _tr do
-        _th 'stem'
-        _th 'paths'
-      end
-      iclafiles.each do |icla,paths|
-        if paths.size > 1
-          _tr do
-            _td icla
-            _td do
-              paths.each do |path|
-                _a path, href: ASF::SVN.svnpath!('iclas', path)
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-
-  # drop any stems we have seen
-  iclafiles_not_seen = iclafiles.reject {|path| seen.include? path}
-
-  # select entries with count != 1
-  seen.select! { |k, v| v.length != 1}
-  if seen.size > 0
-    _h2_ 'Duplicate stem entries in iclas.txt'
-    _table_ do
-      _tr do
-        _th 'stem'
-        _th 'count'
-        _th 'entries'
-      end
-      seen.each do |k,v|
-        _tr do
-          _td k
-          _td v.length
-          _td do
-            v.each do |w|
-              _ w
-              _ ' '
-            end
-          end
-        end
-      end
-    end # table
-  end
-
-  if iclafiles_not_seen.size > 0
-    _h2_ 'ICLA files not matched against iclas.txt'
-    _table do
-      _tr do
-        _th 'stem'
-      end
-      iclafiles_not_seen.each do |k,v|
-        v.each do |p|
-          _tr do
-            _td do
-              _a k, href: ASF::SVN.svnpath!('iclas', p)
-            end
-          end
-        end
-      end
-    end
-  end
-
-  #  Check if there are any duplicate ids
-  dups=icla_ids.select{|k,v| v.size > 1}
-  if dups.size > 0
-    _h2_ 'Duplicate availids in iclas.txt'
-    _table do
-      _tr do
-        _th 'Availid'
-        _th 'Entry'
-      end
-      dups.each do |k,v|
-        v.each do |l|
-          _tr do
-            _td k
-            _td l
-          end
-        end
-      end
-    end
-  end
-
-  # Check that all LDAP entries appear in iclas.txt
-  no_icla = people.reject {|k| icla_ids.has_key? k}
-  # remove known exceptions
-  %w(testsebb testrubys testcml testdooh apldaptest cml-test iroh-test 
rmonk).each {|w| no_icla.delete w}
-  if no_icla.size > 0
-    _h2 'LDAP entries not listed in iclas.txt'
-    _table_ do
-      _tr do
-        _th 'Availid'
-        _th 'Public name'
-        _th 'Creation Date'
-        _th 'Whimsy page'
-      end
-      no_icla.each do |k|
-        _tr do
-          _td k
-          _td ASF::Person[k].public_name
-          _td ASF::Person[k].createDate
-          _td do
-            _a k, href: '/roster/committer/' + k
-          end
-        end
-      end
-    end
-  end
-
-  #  Check if there are any duplicate mails
-  mdups = icla_mails.select {|_k, v| v.size > 1}
-  if mdups.size > 0
-    _h2_ 'Duplicate mails in iclas.txt'
-    _table do
-      _tr do
-        _th 'Email'
-        _th 'Availid'
-        _th 'ICLA'
-        _th 'Entry'
-      end
-      mdups.each do |k,v|
-        v.each do |l|
-          id_, icla_, line_ = l
-          _tr do
-            _td k
-            _td do
-              if id_ != 'notinavail'
-                _a id_, href: '/roster/committer/' + k
-              else
-                _ id_
-              end
-            end
-            _td do
-              file = ASF::ICLAFiles.match_claRef(icla_)
-              if file
-                _a icla_, href: ASF::SVN.svnpath!('iclas', file)
-              else
-                _ icla_
-              end
-            end
-            _td line_
-          end
-        end
-      end
-    end
-  end
-
-  _script do
-    inputs = document.querySelectorAll('input')
-    for i in 0...inputs.length
-      inputs[i].checked = true
-      inputs[i].addEventListener('click') do |event|
-        rows = document.getElementsByClassName(event.target.id)
-        errors = rows.length
-        for j in 0...rows.length
-          if event.target.checked
-            rows[j].style.display = ''
-          else
-            rows[j].style.display = 'none'
-          end
-        end
-      end
-    end
-    buttons = document.querySelectorAll('button')
-    for i in 0...buttons.length
-      # Only supports missing ICLA currently
-      buttons[i].addEventListener('click') do |event|
-        email = event.target.getAttribute('data-email')
-        # issue = event.target.getAttribute('data-issue')
-        name  = event.target.getAttribute('data-name')
-
-        destination = "mailto:#{email}[email protected]";
-        subject = 'Your Apache ICLA has gone missing'
-        body = "Dear " + name + ",\n\n" +
-            "We are reviewing our records to be sure that all submitted ICLAs 
are on file.\n" +
-            "Unfortunately, we are unable to locate the ICLA that you 
submitted earlier.\n\n" +
-            "Can you please resubmit to [email protected]? 
https://apache.org/licenses/contributor-agreements.html#submitting\n"; +
-            "Please do *not* use an apache email as your E-Mail address.\n" +
-            "You can send the original ICLA (if the email address is still 
valid) or a new one.\n\n" +
-            "Best regards,\n"
-
-        window.location = destination +
-          "&subject=#{encodeURIComponent(subject)}" +
-          "&body=#{encodeURIComponent(body)}"
-
-      end
-    end
-
-  end
-end

Reply via email to