https://github.com/shineii86/quickdraw
A fully automated Python script that runs in Google Colab to earn the Quickdraw achievement by opening and immediately closing an issue or pull request.
https://github.com/shineii86/quickdraw
achivements automation badges github quickdraw
Last synced: 12 days ago
JSON representation
A fully automated Python script that runs in Google Colab to earn the Quickdraw achievement by opening and immediately closing an issue or pull request.
- Host: GitHub
- URL: https://github.com/shineii86/quickdraw
- Owner: Shineii86
- License: mit
- Created: 2026-04-16T10:28:04.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-16T10:38:29.000Z (3 months ago)
- Last Synced: 2026-04-16T12:35:31.007Z (3 months ago)
- Topics: achivements, automation, badges, github, quickdraw
- Language: Jupyter Notebook
- Homepage:
- Size: 2.39 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/Shineii86/Quickdraw)
[](https://colab.research.google.com/github/Shineii86/Quickdraw/blob/main/notebooks/Quickdraw.ipynb)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/Shineii86/Quickdraw/stargazers)
[](https://github.com/Shineii86/Quickdraw/fork)
A **fully automated** Python script that runs in **Google Colab** to earn the **Quickdraw** achievement by opening and immediately closing an issue or pull request.
---
> [!WARNING]
> **This script automates interactions with GitHub to artificially trigger the Quickdraw achievement.**
> - **Use responsibly.** Inflating achievements may be viewed negatively by potential employers or collaborators, and may violate GitHub's Terms of Service.
> - You need a **Personal Access Token (classic)** with `repo` scope for your account.
> - The script creates a repository, opens an issue or PR, and closes it within seconds.
> - This tool is intended for **educational purposes and personal experimentation** only.
---
## π Table of Contents
- [What is This Tool?](#-what-is-this-tool)
- [Why Use This Method?](#-why-use-this-method)
- [Prerequisites](#-prerequisites)
- [1. Required Accounts](#1-required-accounts)
- [2. Generate a Personal Access Token (Classic)](#2-generate-a-personal-access-token-classic)
- [Step-by-Step Guide](#-step-by-step-guide)
- [Configuration Options](#-configuration-options)
- [How It Works](#-how-it-works-technical-overview)
- [Troubleshooting](#-troubleshooting)
- [License & Disclaimer](#-license--disclaimer)
---
## π― What is This Tool?
This tool automates the process of earning the **Quickdraw** achievement on GitHub. Quickdraw is awarded when a user closes an issue or pull request within 5 minutes of opening it.
Using the **GitHub REST API**, the script:
1. Creates a public repository (or uses an existing one).
2. Opens either an **issue** or a **pull request** (your choice).
3. Waits a few seconds.
4. Closes the issue or PR immediately.
> [!NOTE]
> The achievement may take a few minutes to several hours to appear on your profile.
---
## β
Why Use This Method?
| Feature | Benefit |
|------------------------------|-------------------------------------------------------------------------|
| βοΈ **No PC Required** | Runs entirely in Google Colab (cloudβbased). Works on any device with a browser. |
| π **Fully Automated** | Creates the repo, opens the item, and closes it β all automatically. |
| π― **Issue or PR** | Choose whether to use an issue or a pull request β both work! |
| π‘οΈ **REST API** | Uses official GitHub REST APIs β no browser automation or scraping. |
| π¦ **Minimal Dependencies** | Only requires `requests` and standard libraries. |
---
## π§° Prerequisites
### 1. Required Accounts
- **One GitHub account** β This account will receive the Quickdraw achievement.
### 2. Generate a Personal Access Token (Classic)
You need a **Personal Access Token (Classic)** for your account with the `repo` scope.
> [!IMPORTANT]
> **Required scope:**
> - `repo` β Grants full control of private repositories (required for creating repos, issues, and PRs).
#### How to Create a Token
1. Log in to your account and go to **Settings** β **Developer settings** β **Personal access tokens** β **Tokens (classic)**.
2. Click **Generate new token** β **Generate new token (classic)**.
3. Give it a descriptive **Note** (e.g., `Quickdraw Script`).
4. Set an **Expiration** (e.g., 7 days β recommended for security).
5. Under **Select scopes**, check the following box:
- βοΈ **repo** (this automatically selects all subβscopes under `repo`)
6. Click **Generate token**.
7. **Copy the token immediately** (it starts with `ghp_`) and store it securely. You will not be able to see it again.
> π **Security Note:** Treat this token like a password. Never commit it to a public repository or share it with anyone.
---
## π₯ How to Deploy
### 1οΈβ£ OneβClick Colab
### 2οΈβ£ Fill in the Configuration Form
Inside the Colab notebook, you'll find a single configuration cell with form fields:
| Variable | Description | Example Value |
|----------------|---------------------------------------------------------------------------|-----------------------------|
| `USERNAME` | Your GitHub handle (to earn the achievement) | `"Shineii86"` |
| `TOKEN` | Personal Access Token with `repo` scope | `"ghp_abc123..."` |
| `REPO_NAME` | Repository name (will be created if it doesn't exist) | `"quickdraw-demo"` |
| `ITEM_TYPE` | Type of item to create and close: `"issue"` or `"pull_request"` | `"issue"` |
| `CLOSE_DELAY` | Seconds to wait before closing (must be < 300) | `2` |
### 3οΈβ£ Run the Notebook
Click **Runtime β Run all** (or press `Ctrl+F9`). The notebook will:
- Install `requests`
- Create a public repository
- Open an issue (or PR)
- Wait a few seconds
- Close the issue (or PR)
You'll see realβtime output like:
```
π€ Quickdraw Achievement Helper for user 'Shineii86'
Repository: Shineii86/quickdraw-demo
Item type: issue
Close delay: 2 seconds
π¦ Creating repository 'quickdraw-demo'...
β
Repository created: https://github.com/Shineii86/quickdraw-demo
π Creating issue...
β
Issue created: https://github.com/Shineii86/quickdraw-demo/issues/1
β³ Waiting 2 seconds before closing...
π Closing issue #1...
β
Issue closed
==================================================
β¨ Success! Issue opened and closed within 2 seconds.
π Check your profile: https://github.com/Shineii86
```
### 4οΈβ£ Check Your Achievements
1. Go to your GitHub profile: `https://github.com/YOUR_USERNAME`
2. Scroll down to the **Achievements** section (if you already have some) or visit `https://github.com/settings/achievements`.
3. **Quickdraw** should appear within a few minutes to a few hours.
---
## βοΈ Configuration Options
| Parameter | Default | Description |
|---------------|-------------|---------------------------------------------------------------------------------------------------------------|
| `USERNAME` | β | The GitHub username that will earn the achievement. |
| `TOKEN` | β | PAT for your account with `repo` scope. |
| `REPO_NAME` | β | Repository name. Will be created if it doesn't exist. |
| `ITEM_TYPE` | `"issue"` | Choose `"issue"` or `"pull_request"`. Both work for Quickdraw. |
| `CLOSE_DELAY` | `2` | Seconds to wait before closing. Must be less than 300 (5 minutes). |
---
## π¬ How It Works (Technical Overview)
The script interacts with the **GitHub REST API v3** using the following endpoints:
1. **`POST /user/repos`** β Creates a new public repository.
2. **`POST /repos/{owner}/{repo}/issues`** β Creates a new issue.
3. **`PATCH /repos/{owner}/{repo}/issues/{number}`** β Closes the issue (by setting `state: "closed"`).
**For Pull Request mode, additional endpoints are used:**
- **`POST /repos/{owner}/{repo}/git/refs`** β Creates a new branch.
- **`PUT /repos/{owner}/{repo}/contents/{path}`** β Creates/updates a file.
- **`POST /repos/{owner}/{repo}/pulls`** β Creates a pull request.
- **`PATCH /repos/{owner}/{repo}/pulls/{number}`** β Closes the pull request.
**Workflow (Issue Mode):**
```
βββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββββββ
β Your Account βββββΆβ Create Repository ββββΆβ Repository Created β
βββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββββββ
β Your Account βββββΆβ Create Issue βββββΆβ Issue Opened β
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββββββ
β
βΌ (after 2 seconds)
ββββββββββββββββββββββββ
β Close Issue β
β (within 5 minutes) β
ββββββββββββββββββββββββ
β
βΌ
π Quickdraw Earned!
```
---
## π Troubleshooting
| Issue | Solution |
|------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| `API request failed: 404` | The repository name may be taken or you don't have access. Try a different `REPO_NAME`. |
| `API request failed: 422` (already exists) | The repository already exists. The script will use the existing one. |
| `Bad credentials` | Your `TOKEN` is incorrect, expired, or lacks the `repo` scope. |
| Achievement not appearing after several hours | Wait up to 24 hours. Ensure the repository is **public** and the item was closed within 5 minutes. |
| Issue/PR closed but not within 5 minutes | Reduce `CLOSE_DELAY`. The default 2 seconds is safe. |
---
## π License & Disclaimer
This project is licensed under the **MIT License** β see the [LICENSE](LICENSE) file for details.
> [!WARNING]
> This script is intended for **educational purposes and personal experimentation** only. Artificially triggering achievements may be viewed negatively by potential employers or collaborators, and may violate GitHub's Terms of Service. The author is not responsible for any consequences arising from misuse of this tool, including but not limited to account suspension, damage to professional reputation, or violation of platform terms.
---
### π Quick Links
- [Google Colab](https://colab.research.google.com/)
- [GitHub Personal Access Tokens](https://github.com/settings/tokens)
- [GitHub REST API Documentation](https://docs.github.com/en/rest)
- [GitHub Achievements](https://github.com/settings/achievements)
---
## π Loved My Work?
π¨ [Follow me on GitHub](https://github.com/Shineii86)
β [Give a star to this project](https://github.com/Shineii86/Quickdraw)
*For inquiries or collaborations*
[](https://telegram.me/Shineii86 "Contact on Telegram")
[](https://instagram.com/ikx7.a "Follow on Instagram")
[](https://pinterest.com/ikx7a "Follow on Pinterest")
[](mailto:ikx7a@hotmail.com "Send an Email")
Copyright Β© 2026 Shinei Nouzen All Rights Reserved
