# Apache YAML Features for Git Repositories
# See the documentation: 
#  https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories
#  https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-WebSiteDeploymentServiceforGitRepositories

# Staging and publishing profile for yourproject-website.git:
staging:
  profile: ~
  whoami:  asf-staging
 
publish:
  whoami:  asf-site

github:
  description: "Apache Lucene.NET Website"
  homepage: https://lucenenet.apache.org/
  labels:
    - lucenenet
    - lucene
    - text
    - search
    - information
    - retrieval
    - analysis
    - index
    - query
    - apache
    - hacktoberfest
    
  features:
    # Enable wiki for documentation
    wiki: false
    # Enable issues management
    issues: false
    # Enable projects for project management boards
    projects: false
