#
# This file should not be processed directly
# Please use the ASF::SVN and ASF::Git APIs instead
#
---
:git:

  letsencrypt:
    url: https://github.com/letsencrypt/letsencrypt
    depth: 1

  # For ruby2js demo only (see www/ruby2js.cgi)
  ruby2js:
    url: https://github.com/rubys/ruby2js.git
    depth: 1

# N.B. the names in the section below should not be changed as they are used by Ruby
# Entries that are not intended to have local workspaces are indicated by: 'depth: skip'
# Such entries are for url lookup only, e.g. Bills

# names that are list only have 'depth: delete'
# This is decoupled from list to allow a gradual changeover

# The url: entries below are relative to the @base value defined in ASF::SVN
# This defaults to https://svn.apache.org/repos/

:svn:

  Bills:
    url: private/financials/Bills
    depth: skip
    

  Meetings:
    url: private/foundation/Meetings

  acreq: # for account requests
    url: infra/infrastructure/trunk/acreq
    depth: skip

  apachecon:
    url: private/foundation/ApacheCon
    depth: empty
    files:
      - apacheconhistory.csv

  apmail_bin:
    url: infra/infrastructure/apmail/trunk/bin
    depth: empty
    files:
      - .archives
      - deprecated_mailing_lists.yml
      - mail_list_autosub.yml

  attic-xdocs:
    url: asf/attic/site/xdocs/projects
    depth: delete
    list: true

  board:
    url: private/committers/board
    depth: empty
    files:
      - calendar.txt
      - committee-info.txt
      - committee-info.yaml

  brandlist:
    url: private/foundation/Brand
    depth: empty
    files:
      - docket.json

  cclas: # list only; no checkout
    url: private/documents/cclas
    depth: delete
    list: true

  comdev-foundation: # only want projects.json?
    url: asf/comdev/projects.apache.org/trunk/site/json/foundation

  comdevtalks:
    url: asf/comdev/site/trunk/content/speakers/talks
    depth: files

  conflict-of-interest:
    url: private/documents/conflict-of-interest
    depth: skip

  emeritus:
    url: private/documents/emeritus
    depth: delete
    list: true

  emeritus-involuntary:
    url: private/documents
    depth: empty
    files:
      - emeritus-involuntary.yml

  emeritus-reinstated:
    url: private/documents/emeritus-reinstated
    depth: delete
    list: true

  emeritus-requests-received: # listing has dates for age checks
    url: private/documents/emeritus-requests-received
    depth: delete
    list: true
    dates: true

  emeritus-requests-rescinded:
    url: private/documents/emeritus-requests-rescinded
    depth: delete
    list: true

  foundation:
    url: private/foundation
    depth: empty
    files:
      - members.txt
      - potential-member-watch-list.txt
      - emeritus-request.txt

  foundation_board: # The checkout is needed by the WSS service
    url: private/foundation/board

  foundation_mentors:
    url: private/foundation/mentors

  grants:
    url: private/documents/grants
    depth: delete
    list: true

  iclas:
    url: private/documents/iclas
    depth: delete
    list: true

  incubator-content:
    url: asf/incubator/public/trunk/content
    depth: empty
    files:
      - podlings.xml

  incubator-podlings:
    url: asf/incubator/public/trunk/content/podlings
    depth: files

  member_apps:
    url: private/documents/member_apps
    depth: delete
    list: true

  minutes:
    url: asf/infrastructure/site/trunk/content/foundation/records/minutes

  officers:
    url: private/foundation/officers
    depth: empty
    files:
      - iclas.txt
      - reserved-ids.yml

  officers_historic:
    url: private/foundation/officers/historic
    depth: empty
    files:
      - committers.json

  officers_surveys:
    url: private/foundation/officers/surveys

  personnel-duties:
    url: private/foundation/officers/personnel-duties
    depth: files

# for access to badrcptto files:
  qmail_control:
    url: infra/infrastructure/trunk/qmail/control
    depth: empty
    files:
      - badrcptto
      - badrcptto_patterns

  site-board: # calendar.mdtext only
    url: asf/infrastructure/site/trunk/content/foundation/board
    depth: skip

  site-img:
    url: asf/comdev/project-logos/originals
    depth: delete
    list: true

  steve:
    url: asf/steve/trunk

  subreq: # for mail subscription requests
    url: infra/infrastructure/trunk/subreq
    depth: skip
