Skip to content
Open

SAAS #55

Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
4382a2a
feat(setup): add initial setup wizard for Discord bot automation
tqmsh Sep 14, 2025
16d6c5f
feat: update Discord bot workflows and clean up deprecated scripts
tqmsh Oct 26, 2025
f9aae68
attempt to fix
tqmsh Oct 26, 2025
f32c227
fix(pipeline): add debug logging and fix shared module import
tqmsh Oct 26, 2025
f60d143
debug(pipeline): add detailed Firestore debugging
tqmsh Oct 26, 2025
c7474cc
debug(setup): add comprehensive setup logging
tqmsh Oct 26, 2025
19ae823
feat(ci): use different Firestore credentials based on branch
tqmsh Oct 26, 2025
ef072b9
chore: update GitHub workflows for CI enhancements
tqmsh Oct 26, 2025
317cb17
feat: add setup wizard logic and commands for improved bot and servic…
tqmsh Oct 26, 2025
5e044a4
feat: implement setup wizard and update user commands
tqmsh Oct 26, 2025
f6e9f20
chores: document DISCORD_BOT_CLIENT_ID setup
tim48-robot Dec 8, 2025
0b87e61
Merge pull request #49 from tim48-robot/chore/readme-instructions
tqmsh Dec 9, 2025
962913c
docs: document dev secrets and GH_TOKEN usage
tim48-robot Dec 10, 2025
95972e0
chore: standardize pr-automation using GH_TOKEN
tim48-robot Dec 10, 2025
bf965d2
fix: passes github_org & call right function
tim48-robot Dec 10, 2025
755f7a7
fix: not flexible org name
tim48-robot Dec 10, 2025
7dd3563
Merge pull request #50 from tim48-robot/fix/readme
tqmsh Dec 10, 2025
a3a5256
docs: align role update instructions with pipeline workflow
tim48-robot Dec 11, 2025
a803e52
Merge pull request #51 from tim48-robot/fix/readme
tqmsh Dec 11, 2025
94e4b5c
feat: add installation flow and app auth
tim48-robot Dec 26, 2025
aaf04e6
feat: add role config and setup/link behavior
tim48-robot Dec 26, 2025
a878013
docs: add github app envs and setup step stage
tim48-robot Dec 26, 2025
c79cc1f
chores: fix discord bot data pipeline actions
tim48-robot Dec 26, 2025
f1f4ff9
fix: /getstats referring to global not per org
tim48-robot Dec 26, 2025
39cf7c6
Merge pull request #54 from tim48-robot/pr-branch
tqmsh Dec 26, 2025
1000f55
remove emojis
tqmsh Dec 26, 2025
ac7c3a8
chores: updated readme & remove unused setup wizard
tim48-robot Dec 27, 2025
4d85d8d
chore: updated readme
tim48-robot Dec 27, 2025
5f022ea
feat: bulk sync on setup and per-user stats lookup
tim48-robot Dec 29, 2025
1e507b1
fix: avoid duplicate initial sync triggers
tim48-robot Dec 29, 2025
43c7994
fix: preserve setup config to avoid duplicate sync triggers
tim48-robot Dec 29, 2025
4ca70c8
docs: finalize readme
tim48-robot Dec 29, 2025
9e3959a
Merge pull request #56 from tim48-robot/pr-branch
tqmsh Dec 30, 2025
3f26d7e
refactor: remove unused oauth_flow state and unsude github_user_data …
tim48-robot Dec 30, 2025
e558972
refactor: remove firestore fallbacks
tim48-robot Dec 30, 2025
0668ac3
Merge pull request #57 from tim48-robot/pr-branch
tqmsh Dec 30, 2025
0f56f5b
fix: align webhook status storage
tim48-robot Dec 31, 2025
9441371
fix: show org last sync for zero-contribution users
tim48-robot Dec 31, 2025
3897c01
feat(shared): migrate firestore storage to organization-scoped paths
tim48-robot Jan 12, 2026
3616127
feat(notifications): support multiple discord servers per github orga…
tim48-robot Jan 12, 2026
ed20a40
fix(pr-review): resolve asyncio event loop errors and add aiohttp dep…
tim48-robot Jan 12, 2026
cc0bb72
security(auth): protect debug endpoint and add setup success notifica…
tim48-robot Jan 12, 2026
30b92b1
fix(bot): improve setup reminders and update config templates
tim48-robot Jan 12, 2026
757e5fa
fix(firestore): restore notification_config while maintaining SaaS logic
tim48-robot Jan 12, 2026
faf7b1e
fix: resolve NoneType error in webhook status and revert stylistic re…
tim48-robot Jan 12, 2026
660db09
fix: resolve resource leaks and error handling in notification system
tim48-robot Jan 13, 2026
f68b617
refactor: remove on_ready setup reminder and simplify footer
tim48-robot Jan 13, 2026
0e83019
fix: validate setup before webhooks and show per-server timestamps
tim48-robot Jan 13, 2026
cecaf74
feat: add GitHub webhook handler for SaaS PR automation
tim48-robot Jan 13, 2026
0a94ccd
fix: include pr_review in Docker build for webhook automation
tim48-robot Jan 13, 2026
ae4b95b
fix: use try/except import pattern for pr_review package compatibility
tim48-robot Jan 13, 2026
cba969b
fix: install pr_review dependencies from its own requirements.txt
tim48-robot Jan 13, 2026
a750fd1
fix: update all pr_review utils to use try/except import pattern
tim48-robot Jan 13, 2026
36c0acc
fix: prevent OAuth session memory leak and extend setup state expiration
tim48-robot Jan 30, 2026
02830f6
refactor: remove /set_webhook command (PR automation disabled)
tim48-robot Jan 30, 2026
e0456a0
feat: role hierarchy validation + hide PR automation commands
tim48-robot Jan 30, 2026
54b09d2
style: premium UI redesign for all setup flow pages with elegant 500p…
tim48-robot Feb 9, 2026
46127eb
feat: add cross-thread communication infrastructure
tim48-robot Feb 12, 2026
94f9e1b
refactor: async offload all Firestore calls for SaaS responsiveness
tim48-robot Feb 12, 2026
b89bf4d
fix: replace global lock + polling with per-user event-driven /link
tim48-robot Feb 12, 2026
6a5d9ea
docs: add MAINTAINER.md with environment and feature re-enablement gu…
tim48-robot Feb 12, 2026
6e98612
security: add SECRET_KEY to .env.example
tim48-robot Feb 12, 2026
6e41cb1
refactor: optimize analytics responsiveness and update maintainer sec…
tim48-robot Feb 12, 2026
1062fdf
fix: timezone-aware datetimes, deprecated utcnow(), dead code, and do…
tim48-robot Feb 12, 2026
5720f11
fix: timezone-aware datetimes, deprecated utcnow(), dead code, and do…
tim48-robot Feb 12, 2026
55ad0b6
fix(/sync): use REPO_OWNER installation token, improve UX, add /help …
tim48-robot Feb 20, 2026
dd01464
fix coderabbit bug: log warning when sync metadata write fails
tim48-robot Feb 20, 2026
8eb152b
fix: auto-clean duplicate REPOSITORY STATS voice categories
tim48-robot Feb 20, 2026
d4613b2
fix(env_validator): allow .env with fewer lines than .env.example
tim48-robot Feb 20, 2026
9426cd9
fix(deploy.sh): include REPO_OWNER/REPO_NAME/WORKFLOW_REF in .env edi…
tim48-robot Feb 20, 2026
b5ebe52
Merge pull request #61 from tim48-robot/feature/saas-ready
tqmsh Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: 🐛 Bug Report
name:Bug Report
description: Submit a bug report to help us improve
title: '[🐞 BUG]: '
title: '[BUG]: '
labels: [Bug]
body:
- type: markdown
attributes:
value: |
# Welcome to the Bug Report template! 🚀
# Welcome to the Bug Report template!
Please use this template to report any bugs or issues you encounter.

Fill in the information below to help us understand and resolve the problem quickly.
Expand All @@ -18,23 +18,23 @@ body:
4. Describe the expected and actual behavior.
5. Provide details about your environment, including the Vue component or project file affected, Git branch, etc.

Thank you for helping us improve our project! 🙌
Thank you for helping us improve our project!

- type: textarea
attributes:
label: Description 📝
label: Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: input
attributes:
label: Link 🔗
label: Link
description: Link to the page where the bug occurred.
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce 🔄
label: Steps to Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
Expand All @@ -45,25 +45,25 @@ body:
required: true
- type: textarea
attributes:
label: Screenshots 📸
label: Screenshots
description: If applicable, add screenshots to help explain the problem.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior 🤔
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Actual Behavior 😱
label: Actual Behavior
description: A clear and concise description of what actually happened.
validations:
required: true
- type: textarea
attributes:
label: Environment 🌍
label: Environment
description: Details about your environment, including the Vue component or project file affected, Git branch, etc.
placeholder: |
- Vue component: [e.g., `src/components/MyComponent.vue`]
Expand Down
14 changes: 7 additions & 7 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name:Feature Request
name:Feature Request
description: Suggest a new feature to enhance our project
title: '[FEATURE]: '
title: '[FEATURE]: '
labels: [Enhancement]
body:
- type: markdown
attributes:
value: |
# Welcome to the Feature Request template! 🚀
# Welcome to the Feature Request template!
Please use this template to suggest new features or improvements to enhance our project.

Fill in the information below to help us understand and evaluate your feature request.
Expand All @@ -16,23 +16,23 @@ body:
2. Explain the motivation behind the feature request.
3. Specify the expected behavior.

Thank you for contributing to the growth of our project! 🙌
Thank you for contributing to the growth of our project!

- type: textarea
attributes:
label: Feature Description 📝
label: Feature Description
description: A clear and concise description of the new feature.
validations:
required: true
- type: textarea
attributes:
label: Motivation 🌟
label: Motivation
description: Explain the motivation behind the feature request.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior 🤔
label: Expected Behavior
description: Specify the expected behavior of the new feature.
validations:
required: true
Expand Down
21 changes: 16 additions & 5 deletions .github/workflows/alive.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,35 @@ name: Keep Discord Bot Alive
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours at minute 0
push:
pull_request:
workflow_dispatch:

jobs:
persistent-ping:
runs-on: ubuntu-latest
timeout-minutes: 360 # 6 hours maximum
steps:
- name: Validate CLOUD_RUN_URL
- name: Select and Validate Cloud Run URL
run: |
if [ -z "${{ secrets.CLOUD_RUN_URL }}" ]; then
echo "CLOUD_RUN_URL secret is not set"
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "Using production Cloud Run URL"
CLOUD_RUN_URL="${{ secrets.CLOUD_RUN_URL }}"
else
echo "Using development Cloud Run URL"
CLOUD_RUN_URL="${{ secrets.DEV_CLOUD_RUN_URL }}"
fi

if [ -z "$CLOUD_RUN_URL" ]; then
echo "Cloud Run URL secret is not set for branch ${{ github.ref_name }}"
exit 1
fi
echo "CLOUD_RUN_URL is configured"
echo "Cloud Run URL is configured: $CLOUD_RUN_URL"
echo "CLOUD_RUN_URL=$CLOUD_RUN_URL" >> $GITHUB_ENV

- name: Persistent Ping Loop
env:
CLOUD_RUN_URL: ${{ secrets.CLOUD_RUN_URL }}
CLOUD_RUN_URL: ${{ env.CLOUD_RUN_URL }}
run: |
echo "Starting persistent ping loop for 6 hours"
echo "Will ping every 5 minutes (72 total pings)"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cicd-discord-notifications.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ jobs:
branch='${{ steps.params.outputs.branch }}'
)
if success:
print('Discord notification sent successfully')
print('Discord notification sent successfully')
else:
print('Failed to send Discord notification')
print('Failed to send Discord notification')
sys.exit(1)

asyncio.run(send_notification())
Expand Down
Loading
Loading