Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
877bfec
open spec
MashB May 14, 2026
806d7e6
DB schema
MashB May 18, 2026
7fa7619
updated feedback
MashB May 18, 2026
cab0cf0
spec in json format
MashB May 18, 2026
1625f36
project, aoi, tasks, lock apis, unit & integration tests
MashB May 24, 2026
4827934
remove unwanted notes
MashB May 24, 2026
916dcfa
env setup issue
MashB May 26, 2026
fcfa8b1
AOI fix
MashB May 27, 2026
baa60cb
project roles apis
MashB Jun 1, 2026
aad663f
Merge pull request #8 from TaskarCenterAtUW/feature-tasking-mvp
MashB Jun 1, 2026
414da7a
Project roles integration
MashB Jun 2, 2026
ede4fee
project role assignment verification
MashB Jun 4, 2026
033c6b6
Merge pull request #9 from TaskarCenterAtUW/feature-tasking-manager
MashB Jun 8, 2026
d121930
audit api changes
MashB Jun 8, 2026
e3d1bff
audit test
MashB Jun 8, 2026
0966769
Fixed CI pipeline
sujata-m Jun 16, 2026
f1e2b23
Fixed isort
sujata-m Jun 16, 2026
639c1fc
Merge pull request #10 from TaskarCenterAtUW/feature-tasking-audit
MashB Jun 16, 2026
90d1def
ignore creating the extension via migration
MashB Jun 16, 2026
6047066
Merge pull request #11 from TaskarCenterAtUW/feature-ignore-extension
sujata-m Jun 17, 2026
4be81bc
Tagging workflow included
sujata-m Jun 17, 2026
a312b69
Merge pull request #12 from TaskarCenterAtUW/feature-github-pipeline
sujata-m Jun 17, 2026
2c8af48
Refactor audit event handling and update event types for tasking and …
iamrajeshk Jun 22, 2026
2c3d6a4
Refactor function signatures and import order in TaskingProjectReposi…
iamrajeshk Jun 22, 2026
b09eea1
Add current_user parameter to patch, soft_delete, activate, close, re…
iamrajeshk Jun 22, 2026
29999b2
Merge pull request #15 from TaskarCenterAtUW/feature-tasking-audit
iamrajeshk Jun 22, 2026
14994f8
Geojson file for fetching the task data
susrisha Jun 24, 2026
de31891
Update routes.py
susrisha Jun 24, 2026
7abb5a0
Linting issues fixed
susrisha Jun 24, 2026
8920979
Merge pull request #17 from TaskarCenterAtUW/feature-task-geojson
susrisha Jun 24, 2026
ed9cf1e
added Route to submit Changesets for task
susrisha Jun 26, 2026
24ace55
Update test_tasks_flow.py
susrisha Jun 26, 2026
47e272c
Update repository.py
susrisha Jun 26, 2026
0d15a4e
Merge pull request #19 from TaskarCenterAtUW/feature-changeset-submit
susrisha Jun 26, 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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [ main ]
branches: [ main, develop ]
pull_request:
branches: [ main ]
branches: [ main, develop ]

jobs:
lint:
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Whenever there is a pull request merged into the branches, create tag
name: Update Environment Tag
on:
pull_request:
types: [closed]
branches:
- develop
- staging
- production
jobs:
update-tag:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Get the current branch name
id: get_branch
run: |
TARGET_BRANCH="${{ github.event.pull_request.base.ref }}"

if [ "$TARGET_BRANCH" = "develop" ]; then
echo "ENV_TAG=dev" >> $GITHUB_ENV
elif [ "$TARGET_BRANCH" = "staging" ]; then
echo "ENV_TAG=stage" >> $GITHUB_ENV
elif [ "$TARGET_BRANCH" = "production" ]; then
echo "ENV_TAG=prod" >> $GITHUB_ENV
else
echo "ENV_TAG=" >> $GITHUB_ENV
fi
- name: Force update tag
if: ${{ env.ENV_TAG != '' }}
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
echo "Targeting tag: ${{ env.ENV_TAG }}"
git tag -f $ENV_TAG
git push origin $ENV_TAG --force
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -163,4 +163,10 @@ alembic/versions/.DS_Store
/workspaces-openstreetmap-website
pg_user_cache.sqlite

.env**
.env**
integration-report.html
docs/tasking-mvp/tasking-mvp.postman_collection.json
docs/tasking-mvp/tasking-mvp.postman_environment.json
docs/tasking-mvp/_enrich_postman.py
docs/tasking-mvp/feature-coverage.md
.idea/
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance"
]
}
22 changes: 21 additions & 1 deletion alembic_osm/versions/9221408912dd_add_user_role_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import sqlalchemy as sa
from alembic import op
from sqlalchemy import inspect, text
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision: str = "9221408912dd"
Expand All @@ -24,6 +25,25 @@ def upgrade() -> None:
assert bind is not None
insp = inspect(bind)

# `users` is normally owned and migrated by the OSM Rails app. When
# running against a fresh database without Rails (CI/testcontainers,
# or a dev box without the osm-rails service), create a minimal stub
# so the FK from `tasking_project_roles`/`user_workspace_roles` can
# be added below. Guarded by has_table so the production-owned
# schema wins when it is already present.
if not insp.has_table("users"):
op.create_table(
"users",
# `id` matches the Rails `users.id` numeric PK so the FK
# from `team_user.user_id` in the next migration can attach.
sa.Column("id", sa.BigInteger(), autoincrement=True, nullable=False),
sa.Column("auth_uid", sa.String(), nullable=False),
sa.Column("email", sa.String(), nullable=True),
sa.Column("display_name", sa.String(), nullable=True),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint("auth_uid", name="auth_uid_unique"),
)

# Add unique constraint on users.auth_uid (if not already present)
constraint_exists = bind.execute(
text("SELECT 1 FROM pg_constraint WHERE conname = 'auth_uid_unique'")
Expand All @@ -49,7 +69,7 @@ def upgrade() -> None:
sa.Column("workspace_id", sa.BigInteger(), nullable=False),
sa.Column(
"role",
sa.Enum(
postgresql.ENUM(
"lead",
"validator",
"contributor",
Expand Down
Loading
Loading