#
# 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.
#

name: issue-robot

on:
  issues:
    types: [opened]

jobs:
  issueRobot:
    runs-on: ubuntu-latest
    steps:
      - name: "Checkout ${{ github.ref }}"
        uses: actions/checkout@v2
        with:
          persist-credentials: false
          submodules: true

      - name: "Translation into English in issue"
        uses: ./.github/actions/translate-on-issue
        with:
          translate-title: true
          translate-body: true

      - name: "Comment in issue"
        uses: ./.github/actions/comment-on-issue
        with:
          message: "Hi:\n* Thank you for your feedback, we have received your issue, Please wait patiently for a reply.\n* In order for us to understand your request as soon as possible, please provide detailed information、version or pictures.\n* If you haven't received a reply for a long time, you can subscribe to the developer's email，Mail subscription steps reference https://dolphinscheduler.apache.org/zh-cn/community/development/subscribe.html ,Then write the issue URL in the email content and send question to dev@dolphinscheduler.apache.org."
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: "Add lable in issue"
        uses: ./.github/actions/lable-on-issue
        with:
          add-labels: "Waiting for reply"
          ignore-if-labeled: true
