Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
788ea47
feat: wip
escalopa Oct 25, 2025
682d72d
feat: rename workflow directory
escalopa Oct 25, 2025
719f5ec
feat: fix workflow
escalopa Oct 25, 2025
6bedb70
feat: read env correctly
escalopa Oct 25, 2025
1c3ef37
feat: fix format main.tf
escalopa Oct 25, 2025
d970227
feat: update deploy.yaml
escalopa Oct 25, 2025
2b14646
feat: try fix workflow
escalopa Oct 25, 2025
aa6d139
feat: try fix workflow v1
escalopa Oct 26, 2025
f8a0b29
feat: try ydb unauthenticated
escalopa Oct 26, 2025
d6495dc
feat: try ydb unauthenticated
escalopa Oct 26, 2025
054f7dd
feat: try ydb unauthenticated
escalopa Oct 26, 2025
8d623fc
feat: fix hook
escalopa Oct 26, 2025
1036ff0
feat: fix hook
escalopa Oct 26, 2025
6145add
feat: update workflow
escalopa Oct 26, 2025
e1e817c
feat: update workflow
escalopa Oct 26, 2025
22e448f
feat: update workflow
escalopa Oct 26, 2025
23ef02c
feat: update workflow + add load-config
escalopa Oct 26, 2025
728bf26
feat: update readme
escalopa Oct 26, 2025
5d217e0
feat: update chat
escalopa Oct 26, 2025
c0dc2a8
feat: update chat
escalopa Oct 26, 2025
28c30e2
feat: update chat
escalopa Oct 26, 2025
65a81fc
feat: update chat
escalopa Oct 26, 2025
a6d6306
feat: update chat
escalopa Oct 26, 2025
58d58e0
feat: update chat
escalopa Oct 26, 2025
d4a267e
feat: update chat
escalopa Oct 26, 2025
563e910
feat: update serverless
escalopa Oct 26, 2025
550e076
feat: update main.tf
escalopa Oct 26, 2025
b694d81
feat: update config
escalopa Oct 26, 2025
6034664
feat: update go.mod
escalopa Oct 26, 2025
10cc499
feat: update go.mod
escalopa Oct 26, 2025
dd9beaa
feat: update json unmarshal
escalopa Oct 26, 2025
67bf853
feat: update reminder decode values
escalopa Oct 26, 2025
a2a691d
feat: update db returned error
escalopa Oct 26, 2025
9eead15
feat: update db returned error
escalopa Oct 26, 2025
cc10640
feat: add migration + remove is_group
escalopa Oct 26, 2025
4eb3066
feat: set today offset
escalopa Oct 26, 2025
d6bccce
feat: update domain
escalopa Oct 26, 2025
725e9cf
feat: update domain
escalopa Oct 26, 2025
6f6adf3
feat: update domain
escalopa Oct 26, 2025
aa73723
feat: update domain
escalopa Oct 26, 2025
b5254b3
feat: update domain
escalopa Oct 26, 2025
f09b49e
feat: update domain
escalopa Oct 26, 2025
7f8d479
feat: update serverless
escalopa Oct 26, 2025
11cb2dc
feat: update domain
escalopa Oct 26, 2025
d1e3fe3
feat: update serverless
escalopa Oct 26, 2025
73f9e46
feat: add info command
escalopa Oct 26, 2025
ab97c09
feat: update go.mod
escalopa Oct 26, 2025
5af98b7
feat: update domain
escalopa Oct 26, 2025
a36e47f
feat: remove shuruq from jamaat
escalopa Oct 26, 2025
d54841f
feat: update dispatcher
escalopa Oct 26, 2025
06c8426
feat: add tomorrow comand
escalopa Oct 26, 2025
68d05da
fix: auth
escalopa Oct 26, 2025
a192c6f
feat: fix prayer time text
escalopa Oct 30, 2025
ebc4c68
feat: add domain.Duration
escalopa Nov 2, 2025
8db4044
feat: use domain.Duration
escalopa Nov 2, 2025
60a899d
feat: use domain.Duration in migration script
escalopa Nov 2, 2025
e7cacf2
fix: update domain
escalopa Nov 2, 2025
0557d95
fix: use domain.Duration properly
escalopa Nov 2, 2025
9c62475
fix: disable hook job
escalopa Nov 2, 2025
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
37 changes: 37 additions & 0 deletions .github/actions/load-config/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 'Write Application Config'
description: 'Write application config.json file'
author: 'Your Name'

inputs:
app_config:
description: 'Application config.json content'
required: true
app_config_path:
description: 'Path where config.json will be created'
required: false
default: 'config.json'

runs:
using: 'composite'
steps:
- name: Write config.json
shell: bash
run: |
if [ -z "${{ inputs.app_config }}" ]; then
echo "::error::APP_CONFIG is empty"
exit 1
fi

# Mask the config value to prevent it from appearing in logs
echo "::add-mask::${{ inputs.app_config }}"

# Write the config and validate it's valid JSON
echo '${{ inputs.app_config }}' > "${{ inputs.app_config_path }}"

# Validate JSON format
if ! jq empty "${{ inputs.app_config_path }}" 2>/dev/null; then
echo "::error::APP_CONFIG is not valid JSON"
exit 1
fi

echo "::notice::Application config file created successfully"
123 changes: 123 additions & 0 deletions .github/actions/setup-terraform/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: 'Setup Terraform Environment'
description: 'Initialize Terraform with workspace, config, and SA key'
author: 'Your Name'

inputs:
terraform_version:
description: 'Terraform version to install'
required: false
default: '1.6.3'
terraform_wrapper:
description: 'Enable Terraform wrapper'
required: false
default: 'false'
service_account_key:
description: 'Yandex Cloud Service Account Key (JSON)'
required: true
service_account_key_path:
description: 'Path where iam.json will be created'
required: false
default: 'iam.json'
app_config:
description: 'Application config.json content'
required: true
app_config_path:
description: 'Path where config.json will be created'
required: false
default: 'config.json'
workspace:
description: 'Terraform workspace name'
required: true
aws_access_key_id:
description: 'AWS access key for S3 backend'
required: true
aws_secret_access_key:
description: 'AWS secret key for S3 backend'
required: true
cache_key:
description: 'Cache key for Terraform providers'
required: true

outputs:
cache-hit:
description: 'Whether the cache was hit'
value: ${{ steps.cache.outputs.cache-hit }}

runs:
using: 'composite'
steps:
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ inputs.terraform_version }}
terraform_wrapper: ${{ inputs.terraform_wrapper }}

- name: Write service account key
shell: bash
run: |
if [ -z "${{ inputs.service_account_key }}" ]; then
echo "::error::SERVICE_ACCOUNT_KEY is empty"
exit 1
fi

# Write the key and validate it's valid JSON
echo '${{ inputs.service_account_key }}' > "${{ inputs.service_account_key_path }}"

# Validate JSON format
if ! jq empty "${{ inputs.service_account_key_path }}" 2>/dev/null; then
echo "::error::SERVICE_ACCOUNT_KEY is not valid JSON"
exit 1
fi

echo "::notice::Service account key file created and validated"

- name: Write config.json
shell: bash
run: |
if [ -z "${{ inputs.app_config }}" ]; then
echo "::error::APP_CONFIG is empty"
exit 1
fi

# Mask the config value to prevent it from appearing in logs
echo "::add-mask::${{ inputs.app_config }}"

# Write the config and validate it's valid JSON
echo '${{ inputs.app_config }}' > "${{ inputs.app_config_path }}"

# Validate JSON format
if ! jq empty "${{ inputs.app_config_path }}" 2>/dev/null; then
echo "::error::APP_CONFIG is not valid JSON"
exit 1
fi

echo "::notice::Application config written to: ${{ inputs.app_config_path }}"

- name: Cache Terraform plugins
id: cache
uses: actions/cache@v3
with:
path: |
.terraform
.terraform.lock.hcl
key: ${{ inputs.cache_key }}
restore-keys: |
${{ inputs.cache_key }}

- name: Terraform Init
if: steps.cache.outputs.cache-hit != 'true'
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ inputs.aws_access_key_id }}
AWS_SECRET_ACCESS_KEY: ${{ inputs.aws_secret_access_key }}
run: |
terraform init \
-backend-config="access_key=$AWS_ACCESS_KEY_ID" \
-backend-config="secret_key=$AWS_SECRET_ACCESS_KEY"
echo "::notice::Terraform initialized"

- name: Select or Create Terraform Workspace
shell: bash
run: |
terraform workspace select ${{ inputs.workspace }} || terraform workspace new ${{ inputs.workspace }}
echo "::notice::Terraform workspace: ${{ inputs.workspace }}"
Loading