diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 0de6524..98c709c 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,3 +1,2 @@
github: learningequality
custom: ["https://learningequality.org/donate/", "https://www.every.org/learningequality"]
-
diff --git a/.github/workflows/resolve_bot_pr_threads.yml b/.github/workflows/resolve_bot_pr_threads.yml
new file mode 100644
index 0000000..601392d
--- /dev/null
+++ b/.github/workflows/resolve_bot_pr_threads.yml
@@ -0,0 +1,62 @@
+name: Resolve bot PR review threads
+on:
+ workflow_call:
+jobs:
+ resolve-addressed-review-threads:
+ name: Resolve addressed review threads
+ if: >
+ github.event_name == 'pull_request_review_comment' && github.event.comment.user.login == 'rtibblesbot' && contains(github.event.comment.body, '')
+
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ steps:
+ - name: Resolve the thread containing this comment
+ uses: actions/github-script@v9
+ with:
+ script: |
+ const commentId = context.payload.comment.id;
+ const { repository } = await github.graphql(
+ `query($owner: String!, $name: String!, $pr: Int!) {
+ repository(owner: $owner, name: $name) {
+ pullRequest(number: $pr) {
+ reviewThreads(first: 100) {
+ nodes {
+ id
+ isResolved
+ comments(first: 1) {
+ nodes { databaseId }
+ }
+ }
+ }
+ }
+ }
+ }`,
+ {
+ owner: context.payload.repository.owner.login,
+ name: context.payload.repository.name,
+ pr: context.payload.pull_request.number,
+ }
+ );
+
+ const nodes = repository.pullRequest.reviewThreads.nodes;
+ const thread = nodes.find(
+ t => !t.isResolved && t.comments.nodes[0]?.databaseId === commentId
+ );
+
+ if (!thread) {
+ core.info(`No matching unresolved thread for comment ${commentId}`);
+ return;
+ }
+
+ await github.graphql(
+ `mutation($id: ID!) {
+ resolveReviewThread(input: { threadId: $id }) {
+ thread { id isResolved }
+ }
+ }`,
+ { id: thread.id }
+ );
+
+ core.info(`Resolved thread ${thread.id}`);
diff --git a/profile/README.md b/profile/README.md
index 7f392a1..49ac112 100644
--- a/profile/README.md
+++ b/profile/README.md
@@ -4,11 +4,11 @@ _*We are an edtech nonprofit focused on building equity in education.*_
Learning Equality is committed to fostering student-centered learning and advancing organizations working with underserved teachers and learners. Through community-driven innovation and strategic partnerships, we provide offline-first, open-source digital tools and implementation support to help them thrive. With this work, we aim to build a new educational model, and ultimately promote human flourishing.
-In celebration of our 13-year anniversary, we’re launching a $1.3 million fundraising campaign to continue to reach millions of children from Guatemala to Uganda, India to the USA! We’re now building toward:
+In celebration of our 13-year anniversary, we’re launching a $1.3 million fundraising campaign to continue to reach millions of children from Guatemala to Uganda, India to the USA! We’re now building toward:
- Developing offline AI-powered tools that build AI literacy, maintain human agency, and save valuable teacher time – and put these tools directly into the hands of our community
- Helping refugee children build foundational, critical thinking and social-emotional skills via our Flying Colors program
-- Increasing direct support to organizations in East Africa that implement student-centered learning with Kolibri
+- Increasing direct support to organizations in East Africa that implement student-centered learning with Kolibri
💸 If you feel inspired by our mission, we invite you to [be part of it](https://learningequality.org/donate/)
ℹ️ Learn more [about us](https://learningequality.org/)