-
Notifications
You must be signed in to change notification settings - Fork 11
50 lines (39 loc) · 1.62 KB
/
accept-crate-invites.yml
File metadata and controls
50 lines (39 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
name: Accept crate owner invitations
on:
push:
branches:
- ci/accept-crate-owner-invites
jobs:
accept-invites:
runs-on: ubuntu-latest
steps:
- name: List and accept pending crate owner invitations
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
set -euo pipefail
echo "Listing pending invitations..."
RESPONSE=$(curl -s -H "Authorization: $CARGO_REGISTRY_TOKEN" \
-H "User-Agent: near-api-rs-ci" \
https://crates.io/api/v1/me/crate_owner_invitations)
echo "$RESPONSE" | jq .
INVITES=$(echo "$RESPONSE" | jq -c '.crate_owner_invitations // []')
COUNT=$(echo "$INVITES" | jq length)
if [ "$COUNT" -eq 0 ]; then
echo "No pending invitations found."
exit 0
fi
echo "Found $COUNT pending invitation(s). Accepting..."
echo "$INVITES" | jq -c '.[]' | while read -r invite; do
CRATE_ID=$(echo "$invite" | jq '.crate_id')
CRATE_NAME=$(echo "$invite" | jq -r '.crate_name')
echo "Accepting invite for $CRATE_NAME (id: $CRATE_ID)..."
curl -s -X PUT \
-H "Authorization: $CARGO_REGISTRY_TOKEN" \
-H "Content-Type: application/json" \
-H "User-Agent: near-api-rs-ci" \
"https://crates.io/api/v1/me/crate_owner_invitations/$CRATE_ID" \
-d "{\"crate_owner_invite\":{\"crate_id\":$CRATE_ID,\"accepted\":true}}" | jq .
echo "Done with $CRATE_NAME"
done
echo "All invitations processed."