From 36e1c4c112caf318a20970427db837cf875ec463 Mon Sep 17 00:00:00 2001 From: Benjifilly Date: Thu, 12 Oct 2023 19:36:48 +0200 Subject: [PATCH] feat: Trello - Delete cards sounds good, let me know what you think ;) --- Trello/Trello_Delete_Cards.ipynb | 350 +++++++++++++++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 Trello/Trello_Delete_Cards.ipynb diff --git a/Trello/Trello_Delete_Cards.ipynb b/Trello/Trello_Delete_Cards.ipynb new file mode 100644 index 0000000000..7fb3f7bf7a --- /dev/null +++ b/Trello/Trello_Delete_Cards.ipynb @@ -0,0 +1,350 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "steady-basin", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "\"Naas\"" + ] + }, + { + "cell_type": "markdown", + "id": "undefined-victory", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "# Trello - Delete cards\n", + "

Give Feedback | Bug report" + ] + }, + { + "cell_type": "markdown", + "id": "08e617eb-f6d2-47be-a1fc-56c1322c065b", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Tags:** #trello #project #delete #snippet #operations #lists #board\n" + ] + }, + { + "cell_type": "markdown", + "id": "naas-author", + "metadata": { + "papermill": {}, + "tags": [ + "naas" + ] + }, + "source": [ + "**Author:** [Benjamin Filly](https://www.linkedin.com/in/benjamin-filly-05427727a/)\n" + ] + }, + { + "cell_type": "markdown", + "id": "ea908824-36c0-4c64-8e3b-8169ed95ea56", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**Last update:** 2023-07-14 (Created: 2023-07-14)" + ] + }, + { + "cell_type": "markdown", + "id": "naas-description", + "metadata": { + "papermill": {}, + "tags": [ + "description" + ] + }, + "source": [ + "**Description:** This notebook shows how to automatically remove a card from Trello using the API. " + ] + }, + { + "cell_type": "markdown", + "id": "575e5c78-17a8-48b6-9244-fc1c0d996f12", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "**References:**\n", + "- [Trello - Delete a card](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-delete)" + ] + }, + { + "cell_type": "markdown", + "id": "input_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Input" + ] + }, + { + "cell_type": "markdown", + "id": "import_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "supreme-westminster", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-12T17:31:46.341566Z", + "iopub.status.busy": "2023-10-12T17:31:46.341377Z", + "iopub.status.idle": "2023-10-12T17:31:49.763338Z", + "shell.execute_reply": "2023-10-12T17:31:49.762559Z", + "shell.execute_reply.started": "2023-10-12T17:31:46.341516Z" + }, + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "import requests\n", + "import naas" + ] + }, + { + "cell_type": "markdown", + "id": "exotic-academy", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Setup variables" + ] + }, + { + "cell_type": "markdown", + "id": "reduced-tourist", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "- `card_id`: The unique identifier of the Trello card you want to delete.\n", + "- `board_id`: The unique identifier of the Trello board you want to work with.\n", + "- `api_key`: Your Trello API key. [Get your API key here](https://github.com/Benjifilly/My_notebooks/wiki/How-to-obtain-an-API-key-for-Trello)\n", + "- `force_update`: Parameters to enforce the token update" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "tender-albany", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-12T17:31:49.765026Z", + "iopub.status.busy": "2023-10-12T17:31:49.764502Z", + "iopub.status.idle": "2023-10-12T17:31:49.934440Z", + "shell.execute_reply": "2023-10-12T17:31:49.933810Z", + "shell.execute_reply.started": "2023-10-12T17:31:49.764928Z" + }, + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "card_id = \"zfKRjpgu\" # Replace this with the ID of the card you want to delete\n", + "board_id = \"TWbaquXE\" # Example: \"https://trello.com/b/TWbaquXE/ultimate-to-do-list\"\n", + "\n", + "api_key = naas.secret.get(\"TRELLO_API_KEY\") or \"YOUR_TRELLO_API_KEY\"\n", + "force_update = False" + ] + }, + { + "cell_type": "markdown", + "id": "model_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Model" + ] + }, + { + "cell_type": "markdown", + "id": "0f97f2a0-976d-42c1-b9d4-3b6597ab8453", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Get your token\n", + "Your Trello token will be stored on naas secret name: \"TRELLO_TOKEN\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "96e73242-c286-4413-8d69-825ad7391584", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-12T17:31:49.937426Z", + "iopub.status.busy": "2023-10-12T17:31:49.937243Z", + "iopub.status.idle": "2023-10-12T17:31:50.106578Z", + "shell.execute_reply": "2023-10-12T17:31:50.105905Z", + "shell.execute_reply.started": "2023-10-12T17:31:49.937406Z" + }, + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "def get_token(api_key, force_update):\n", + " token = naas.secret.get(\"TRELLO_TOKEN\")\n", + " if not token or force_update:\n", + " url = f\"https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key={api_key}\"\n", + " print(f\"🔗 Click on the URL to get your token: {url}\")\n", + " print(\"✅ On the authorization page, click on 'Authorize' button at the bottom of the page to proceed.\")\n", + " print(\"💾 Copy/Paste the token in red in the input case below\")\n", + " token = input(\"-> Enter your token here:\")\n", + " naas.secret.add(\"TRELLO_TOKEN\", token)\n", + " return token\n", + "\n", + "token = get_token(api_key, force_update)" + ] + }, + { + "cell_type": "markdown", + "id": "c97e69d0-8851-4139-ba3b-339753fde780", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Deleting cards\n", + "Make a GET request to the Trello API to delete the target card" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6ad17a5c-689b-4c43-9630-3765e3d0e239", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-12T17:31:50.108627Z", + "iopub.status.busy": "2023-10-12T17:31:50.108347Z", + "iopub.status.idle": "2023-10-12T17:31:50.835701Z", + "shell.execute_reply": "2023-10-12T17:31:50.835033Z", + "shell.execute_reply.started": "2023-10-12T17:31:50.108573Z" + }, + "papermill": {}, + "tags": [] + }, + "outputs": [], + "source": [ + "delete_url = f\"https://api.trello.com/1/cards/{card_id}?key={api_key}&token={token}\" # Construct the URL to delete the card\n", + "response = requests.delete(delete_url) # Send the DELETE request" + ] + }, + { + "cell_type": "markdown", + "id": "output_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "## Output" + ] + }, + { + "cell_type": "markdown", + "id": "display_cell", + "metadata": { + "papermill": {}, + "tags": [] + }, + "source": [ + "### Display result" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "73bd6ede-4b47-465f-8c71-3d3caa3e7dce", + "metadata": { + "execution": { + "iopub.execute_input": "2023-10-12T17:31:50.837075Z", + "iopub.status.busy": "2023-10-12T17:31:50.836828Z", + "iopub.status.idle": "2023-10-12T17:31:50.841345Z", + "shell.execute_reply": "2023-10-12T17:31:50.840687Z", + "shell.execute_reply.started": "2023-10-12T17:31:50.837045Z" + }, + "papermill": {}, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Card successfully deleted ✅\n" + ] + } + ], + "source": [ + "if response.status_code == 200:\n", + " print(\"Card successfully deleted ✅\")\n", + "else:\n", + " print(\"❌ Failed to delete the card. Status code:\", response.status_code)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "naas": { + "notebook_id": "e0c37b0b9b71eef4ba954737ebcf7889a1961540390e8d61dc9665188cdb9cc1", + "notebook_path": "Trello/Trello_Get_Lists_on_a_Board.ipynb" + }, + "papermill": { + "default_parameters": {}, + "environment_variables": {}, + "parameters": {}, + "version": "2.3.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}