Skip to content

Commit a8bb993

Browse files
Add delete package action (emscripten-forge#2505)
1 parent 3c22ca6 commit a8bb993

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import sys
2+
import requests
3+
import argparse
4+
5+
def main():
6+
parser = argparse.ArgumentParser(description='Delete a package from prefix.dev')
7+
parser.add_argument('--token', required=True, help='API token')
8+
parser.add_argument('--package', required=True, help='Package file name')
9+
10+
args = parser.parse_args()
11+
12+
token = args.token
13+
package_file_name = args.package
14+
15+
base_url = "https://prefix.dev/api/v1"
16+
channel = "emscripten-forge-dev"
17+
subdir = "emscripten-wasm32"
18+
headers = {"Authorization": f"Bearer {token}"}
19+
delete_url = f"{base_url}/delete/{channel}/{subdir}/{package_file_name}"
20+
21+
try:
22+
print("Deleting package...")
23+
response = requests.delete(delete_url, headers=headers)
24+
25+
if response.status_code == 200:
26+
print("Package deleted successfully!")
27+
print(f"Response: {response.text}")
28+
elif response.status_code == 404:
29+
print("Package not found.")
30+
elif response.status_code == 401:
31+
print("Unauthorized. Check your token.")
32+
elif response.status_code == 403:
33+
print("Forbidden. You don't have permission to delete this package.")
34+
else:
35+
print(f"Error: {response.status_code}")
36+
print(f"Response: {response.text}")
37+
38+
except requests.exceptions.RequestException as e:
39+
print(f"Request failed: {e}")
40+
41+
if __name__ == "__main__":
42+
main()
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Delete package
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
package_name:
7+
description: Name of the package to be deleted
8+
required: true
9+
default: myBadPackage-9.4.0-py313h6e18b15_0.tar.bz2
10+
11+
jobs:
12+
delete_package:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout repo
16+
uses: actions/checkout@v4
17+
18+
- name: Install micromamba
19+
uses: mamba-org/setup-micromamba@v2
20+
with:
21+
environment-name: delete-pkg-env
22+
init-shell: bash
23+
create-args: >-
24+
python
25+
requests
26+
27+
- name: Delete package
28+
shell: bash -l {0}
29+
env:
30+
PREFIX_DEV_API_KEY: ${{ secrets.PREFIX_DEV_API_KEY }}
31+
PACKAGE_NAME: ${{ github.event.inputs.package_name }}
32+
run: |
33+
python .github/workflows/delete_package.py \
34+
--token "$PREFIX_DEV_API_KEY" --package "$PACKAGE_NAME"
35+

0 commit comments

Comments
 (0)