#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

github:
  description: The Golang auto-instrument Agent for Apache SkyWalking, which provides the native tracing/metrics/logging abilities for Golang projects.
  homepage: https://skywalking.apache.org/
  labels:
    - skywalking
    - observability
    - apm
    - distributed-tracing
    - dapper
    - metrics
    - logging
    - agent
    - auto-instrumentation
  enabled_merge_buttons:
    squash:  true
    merge:   false
    rebase:  false
  dependabot_updates: false
  protected_branches:
    main:
      required_status_checks:
        strict: true
        contexts:
          - Required
          - Plugin Tests
      required_pull_request_reviews:
        dismiss_stale_reviews: true
        required_approving_review_count: 1

