-
-
Notifications
You must be signed in to change notification settings - Fork 60
Add a GitHub action to automatically update projects #467
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Would using the pull_request_target trigger work instead? |
Even if it does, I'm not sure we want to add PRs to the projects anymore. |
Projects now support a workflow to automatically add issues/PRs to projects, even though it seems to have some limitations (e.g. can't set custom fields based on a label, and also limitations based on the account type). See: |
Also, Triagers can now add issues/PRs to projects directly due to the changes in #460 , as far as I'm aware, so anyone who can add a label can also add directly to the project. |
It would be handy for the action to remove them too, e.g. at the moment the blockers project is littered with issues that should no longer be there. Proposed (draft) patch I madeSubject: [PATCH] Workflow
---
Index: .github/workflows/project-updater.yml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/.github/workflows/project-updater.yml b/.github/workflows/project-updater.yml
--- a/.github/workflows/project-updater.yml (revision 17718b0503e5d1c987253641893cab98e01f4535)
+++ b/.github/workflows/project-updater.yml (date 1745611241929)
@@ -5,6 +5,7 @@
types:
- opened
- labeled
+ - unlabeled
permissions:
contents: read
@@ -29,3 +30,35 @@
project-url: https://github.com/orgs/python/projects/${{ matrix.project }}
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
labeled: ${{ matrix.label }}
+
+ remove-from-project:
+ name: Remove issues from projects
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ if: ${{ github.event.action == 'unlabeled' }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ # if one of these labels is removed from an issue, it will be removed
+ # from its (past) project
+ - { project: 2, label: "release-blocker,deferred-blocker" }
+
+ steps:
+ - id: check-label
+ run: |
+ removed_label="${{ github.event.label.name }}"
+
+ IFS=',' read -ra labels <<< "${{ matrix.label }}"
+ if [[ " ${labels[@]} " =~ " ${removed_label} " ]]; then
+ echo "removed_relevant=true" >> "$GITHUB_OUTPUT"
+ else
+ echo "removed_relevant=false" >> "$GITHUB_OUTPUT"
+ fi
+
+ - if: steps.check-label.outputs.removed_relevant == 'true'
+ uses: joshmgross/remove-from-project-classic@main
+ with:
+ project-number: https://github.com/orgs/python/projects/${{ matrix.project }}
+ issue-number: ${{ github.event.number }}
+ token: ${{ secrets.PROJECT_TOKEN }} Should I submit it as a pr? (Note: |
Last time I checked project supported a few more features that allowed automatic addition (and possibly removal too) directly from the project settings. If these features are now advanced enough to support our use cases we might even be able to get rid of the workflow. Would you be interested in looking into this? |
I presume you mean using-the-built-in-automations ? These appear to be mini workflows that you configure in some way. They support adding items and archiving. They are fine for our use cases. Unfortunately I cannot help further with this as I don't have permissions to use the button and I cannot open a pr :-( |
This is a meta issue about a newly added GitHub action that automatically updates projects:
pull_request
trigger from the project-updater GHA. cpython#94483sprint
issues to the Sprint 2022 project. cpython#97788python/cpython#94447 added a first version of the workflow that updates the Release and Deferred blockers project, and:
release-blocker
label is applieddeferred-blocker
label is appliedAfter attempting backports in python/cpython#94477 and python/cpython#94475, the check failed because it couldn't access the secret. After some investigation it turns out that PRs created from forks can't access secrets. In addition, this action would add a check for each job in the PR (currently only one, but I'm planning to add more for the other labels/projects):
Click to see screenshot of the job in the PR checks list
Therefore, I submitted python/cpython#94483 to remove the
pull_request
trigger and only run the action for issues, solving the issue with the secret and the extra checks in PRs.The text was updated successfully, but these errors were encountered: