On Sun, 2 Jun 2019 at 13:17, <s...@apache.org> wrote: > > 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 8c31ed2 WHIMSY-271 Centralise committee-info.txt roster update > handling > 8c31ed2 is described below > > commit 8c31ed2a0af589f3952c75539f28af481dfc755b > Author: Sebb <s...@apache.org> > AuthorDate: Sun Jun 2 13:17:07 2019 +0100 > > WHIMSY-271 Centralise committee-info.txt roster update handling > > 1 of 2: Update nonpmc code > --- > www/roster/views/actions/nonpmc.json.rb | 59 > +++------------------------------ > 1 file changed, 5 insertions(+), 54 deletions(-) > > diff --git a/www/roster/views/actions/nonpmc.json.rb > b/www/roster/views/actions/nonpmc.json.rb > index bb8737b..d718aa3 100644 > --- a/www/roster/views/actions/nonpmc.json.rb > +++ b/www/roster/views/actions/nonpmc.json.rb > @@ -37,60 +37,11 @@ if env.password > > # update committee-info.txt > if @targets.include? 'info' > - Dir.mktmpdir do |tmpdir| > - # checkout committers/board > - Kernel.system 'svn', 'checkout', '--quiet', > - '--no-auth-cache', '--non-interactive', > - '--username', env.user.untaint, '--password', env.password.untaint, > - 'https://svn.apache.org/repos/private/committers/board', > tmpdir.untaint > - > - # read in committee-info.txt > - file = File.join(tmpdir, 'committee-info.txt') > - info = File.read(file) > - > - info.scan(/^\* (?:.|\n)*?\n\s*?\n/).each do |block| > - # find committee > - next unless ASF::Committee.find(block[/\* (.*?)\s+\(/, > 1]).id==@project > - > - # split block into lines > - lines = block.strip.split("\n") > - > - # add or remove people > - people.each do |person| > - id = person.id > - if @action == 'add' > - unless lines.any? {|line| line.include? "<#{id}@apache.org>"} > - name = "#{person.public_name.ljust(26)} <#{id}@apache.org>" > - time = Time.new.gmtime.strftime('%Y-%m-%d') > - lines << " #{name.ljust(59)} [#{time}]" > - end > - else > - lines.reject! {|line| line.include? "<#{id}@apache.org>"} > - end > - end > - > - # replace committee block with new information > - info.sub! block, ([lines.shift] + lines.sort).join("\n") + "\n\n" > - break > - end > - > - # write file out to disk > - File.write(file, info) > - > - # commit changes > - rc = Kernel.system 'svn', 'commit', '--quiet', > - '--no-auth-cache', '--non-interactive', > - '--username', env.user.untaint, '--password', env.password.untaint, > - tmpdir.untaint, '--message', > - "#{@project} #{@action == 'add' ? '+' : '-'}= #{who}".untaint > - > - if rc > - # update cache > - ASF::Committee.parse_committee_info(info) > - else > - # die > - raise Exception.new('Update committee-info.txt failed') > - end > + cinfo = File.join(ASF::SVN['board'], 'committee-info.txt') > + message = "#{@project} #{@action == 'add' ? '+' : '-'}= #{who}".untaint > + ASF::SVN.update cinfo, message, env, _, {:dryrun => true } do |tmpdir, > contents|
This causes problems - the serialise output is missing; instead there is a transcript of the SVN output. I assume that is due to the use of _.system. Do we need a new version of SVN.update for use from the server side? > + contents = ASF::Committee.update_roster(contents, @project, people, > @action) > + contents > end > end > >