diff --git a/.github/workflows/external_issue_labeler.yml b/.github/workflows/external_issue_labeler.yml new file mode 100644 index 00000000000..e6d987e9f34 --- /dev/null +++ b/.github/workflows/external_issue_labeler.yml @@ -0,0 +1,55 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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: Label external issues and PRs + +on: + issues: + types: + - opened + + pull_request: + types: + - opened + +env: + GITHUB_TOKEN: ${{ github.token }} + +permissions: + issues: write + pull-requests: write + +jobs: + Label-Issue: + runs-on: ubuntu-latest + # Only run if the issue author is not part of RAPIDS + if: ${{ ! contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association)}} + steps: + - name: add-external-labels + run: | + issue_url=${{ github.event.issue.html_url }} + gh issue edit ${issue_url} --add-label "External" + continue-on-error: true + + Label-PR: + runs-on: ubuntu-latest + # Only run if the issue author is not part of RAPIDS + if: ${{ ! contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.pull_request.author_association)}} + steps: + - name: add-external-labels + run: | + pr_url=${{ github.event.pull_request.html_url }} + gh issue edit ${pr_url} --add-label "External" + continue-on-error: true diff --git a/.github/workflows/pr_issue_status_automation.yml b/.github/workflows/pr_issue_status_automation.yml new file mode 100644 index 00000000000..aaece1bfa3e --- /dev/null +++ b/.github/workflows/pr_issue_status_automation.yml @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed 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: Set PR and Issue Project Fields + +on: + pull_request_target: + # This job runs when a PR is first opened, or it is updated + # Only runs if the PR is open (we don't want to update the status of a closed PR) + types: [opened, edited, synchronize] + +jobs: + get-project-id: + uses: rapidsai/shared-workflows/.github/workflows/project-get-item-id.yaml@branch-24.08 + if: github.event.pull_request.state == 'open' + secrets: inherit + permissions: + contents: read + with: + PROJECT_ID: "PVT_kwDOAp2shc4AiNzl" + ITEM_NODE_ID: "${{ github.event.pull_request.node_id }}" + + update-status: + # This job sets the PR and its linked issues to "In Progress" status + uses: rapidsai/shared-workflows/.github/workflows/project-get-set-single-select-field.yaml@branch-24.08 + if: github.event.pull_request.state == 'open' + needs: get-project-id + with: + PROJECT_ID: "PVT_kwDOAp2shc4AiNzl" + SINGLE_SELECT_FIELD_ID: "PVTSSF_lADOAp2shc4AiNzlzgaxNac" + SINGLE_SELECT_FIELD_NAME: "Status" + SINGLE_SELECT_OPTION_VALUE: "In Progress" + ITEM_PROJECT_ID: "${{ needs.get-project-id.outputs.ITEM_PROJECT_ID }}" + ITEM_NODE_ID: "${{ github.event.pull_request.node_id }}" + UPDATE_ITEM: true + UPDATE_LINKED_ISSUES: true + secrets: inherit + + update-sprint: + # This job sets the PR and its linked issues to the current "Weekly Sprint" + uses: jarmak-nv/shared-workflows/.github/workflows/project-get-set-iteration-field.yaml@branch-24.08 + if: github.event.pull_request.state == 'open' + needs: get-project-id + with: + PROJECT_ID: "PVT_kwDOAp2shc4AiNzl" + ITERATION_FIELD_ID: "PVTIF_lADOAp2shc4AiNzlzgbU_po" + ITERATION_FIELD_NAME: "Weekly Sprint" + ITEM_PROJECT_ID: "${{ needs.get-project-id.outputs.ITEM_PROJECT_ID }}" + ITEM_NODE_ID: "${{ github.event.pull_request.node_id }}" + UPDATE_ITEM: true + UPDATE_LINKED_ISSUES: true + secrets: inherit