Skip to content

I WANT TO SEND THREE NUMPY ARRAY BY ONE TIME #1204

I WANT TO SEND THREE NUMPY ARRAY BY ONE TIME

I WANT TO SEND THREE NUMPY ARRAY BY ONE TIME #1204

name: "Dora Bot"
on:
issue_comment:
types: [created]
schedule:
- cron: "0 0 * * *" # Midnight(UTC)
jobs:
assign-unassign:
runs-on: ubuntu-latest
permissions:
issues: write
if: github.event_name == 'issue_comment'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Parses comment then assign/unassign user
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMMENT_BODY: "${{ github.event.comment.body }}"
ISSUE_NUMBER: "${{ github.event.issue.number }}"
COMMENT_AUTHOR: "${{ github.event.comment.user.login }}"
AUTHOR_ASSOCIATION: "${{ github.event.comment.author_association }}"
run: |
# For assigning
if [[ "$COMMENT_BODY" == "@dora-bot assign me" ]]; then
echo "Assigning $COMMENT_AUTHOR to issue #$ISSUE_NUMBER"
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/assignees \
-d "{\"assignees\":[\"$COMMENT_AUTHOR\"]}"
# Returns a comment back
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/comments \
-d "{\"body\":\"Hello @$COMMENT_AUTHOR, this issue is now assigned to you!\"}"
# for unassigning(self)
elif [[ "$COMMENT_BODY" == "@dora-bot unassign me" ]]; then
echo "Unassigning $COMMENT_AUTHOR from issue #$ISSUE_NUMBER"
curl -X DELETE \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/assignees \
-d "{\"assignees\":[\"$COMMENT_AUTHOR\"]}"
# Returns a comment back
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/comments \
-d "{\"body\":\"Hello @$COMMENT_AUTHOR, you have been unassigned from this issue.\"}"
# Command to help maintainers to unassign
elif [[ "$COMMENT_BODY" =~ @dora-bot\ unassign\ [@]?([a-zA-Z0-9_-]+) ]]; then
TARGET_USER="${BASH_REMATCH[1]}"
# Checking that the comment author has proper permissions
if [[ "$AUTHOR_ASSOCIATION" == "NONE" || "$AUTHOR_ASSOCIATION" == "CONTRIBUTOR" ]]; then
echo "Unauthorized unassign command by $COMMENT_AUTHOR. Only maintainers or collaborators may unassign others."
exit 1
fi
echo "Maintainer $COMMENT_AUTHOR is unassigning $TARGET_USER from issue #$ISSUE_NUMBER"
curl -X DELETE \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/assignees \
-d "{\"assignees\":[\"$TARGET_USER\"]}"
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/comments \
-d "{\"body\":\"Hello @$TARGET_USER, you have been unassigned from this issue by @$COMMENT_AUTHOR.\"}"
else
echo "No matching command found in comment: $COMMENT_BODY"
fi
stale-unassign:
runs-on: ubuntu-latest
permissions:
issues: write
if: github.event_name == 'schedule'
steps:
- name: Unassign stale issues
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Calculate the timestamp for 14 days ago
TWO_WEEKS_AGO=$(date -d "14 days ago" +%s)
repo="${{ github.repository }}"
echo "Fetching open issues for $repo"
issues=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/repos/${repo}/issues?state=open&per_page=100")
issue_count=$(echo "$issues" | jq '. | length')
echo "Found $issue_count open issues"
for (( i=0; i<$issue_count; i++ )); do
issue_number=$(echo "$issues" | jq -r ".[$i].number")
updated_at=$(echo "$issues" | jq -r ".[$i].updated_at")
updated_ts=$(date -d "$updated_at" +%s)
# If the issue hasn't been updated within 2 weeks, consider it stale.
if [[ $updated_ts -lt $TWO_WEEKS_AGO ]]; then
assignees=$(echo "$issues" | jq -r ".[$i].assignees | .[].login")
if [[ -n "$assignees" ]]; then
echo "Issue #$issue_number is stale. Unassigning users: $assignees"
for user in $assignees; do
curl -X DELETE \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${repo}/issues/$issue_number/assignees \
-d "{\"assignees\":[\"$user\"]}"
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${repo}/issues/$issue_number/comments \
-d "{\"body\":\"@${user} has been automatically unassigned from this stale issue after 2 weeks of inactivity.\"}"
done
fi
fi
done