Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge v0.1.0 #20

Merged
merged 86 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
f6b1bb1
Added blank sln
pingu2k4 Jun 9, 2024
4070bc1
added sln folders
pingu2k4 Jun 9, 2024
6e9e114
Added first crack at an example of implementation. Need to test that …
pingu2k4 Jun 9, 2024
2b16861
Added headers
pingu2k4 Jun 9, 2024
27ff4e2
Added appsettings to gitignore
pingu2k4 Jun 16, 2024
e347b69
Added playground, so that we can easily test at dev time
pingu2k4 Jun 16, 2024
564abee
Added full example of GetAccount, working in playground and fleshed o…
pingu2k4 Jun 16, 2024
f508a99
Moved account functions into account client
pingu2k4 Jun 16, 2024
c324457
Renamed everything to add PinguApps Prefix
pingu2k4 Jun 16, 2024
456bdf8
Fixed deserialisation of appwrite errors
pingu2k4 Jun 16, 2024
613e344
Moved clients into their own folder, and given them interfaces. Made …
pingu2k4 Jun 16, 2024
c8685c3
Created server and shared projects
pingu2k4 Jun 16, 2024
d9d4b94
Moved more into shared and started added more to server project
pingu2k4 Jun 16, 2024
50f4ad9
Added appwrite server stuff to server project, but we don't want acco…
pingu2k4 Jun 16, 2024
119e8e2
removed get from server account api
pingu2k4 Jun 16, 2024
0114518
Updated IsExternalInit to what better represents it
pingu2k4 Jun 18, 2024
e23b145
Added utilities for random ID generation, and CreateAccountRequest
pingu2k4 Jun 18, 2024
8b1e1bd
Added example of creating account to server API
pingu2k4 Jun 18, 2024
5d5255b
Moved repeatable logic for returning response types to utility classe…
pingu2k4 Jun 18, 2024
f7b379c
Submitting sample to check format in github view
pingu2k4 Jun 18, 2024
72c68f5
Started adding details for Account implementation progress
pingu2k4 Jun 18, 2024
427d2c9
Removed idea of central shared api's - It makes sense to just redefin…
pingu2k4 Jun 24, 2024
af957a7
Added resilience to refit http clients
pingu2k4 Jun 24, 2024
47ed486
Removed resilience
pingu2k4 Jun 24, 2024
bf1ee38
Merge pull request #2 from PinguApps/setup-projects
pingu2k4 Jun 24, 2024
c35ef3a
Removed tests folder
pingu2k4 Jun 24, 2024
387ed08
Merge branch 'dev' into progress-in-readme
pingu2k4 Jun 24, 2024
d7b09dd
Update refit monorepo to v7.1.0
renovate[bot] Jun 24, 2024
83965bb
Added all Account endpoints
pingu2k4 Jun 24, 2024
1d99941
Added Users section
pingu2k4 Jun 24, 2024
c9deaf8
Merge pull request #3 from PinguApps/renovate/refit-monorepo
pingu2k4 Jun 25, 2024
93d722f
Update refit monorepo to v7.1.1
renovate[bot] Jun 25, 2024
7db9c20
Added Teams progress to readme
pingu2k4 Jun 26, 2024
560fef9
Partial progress on listing DB API's
pingu2k4 Jun 26, 2024
ff84f2d
Merge pull request #4 from PinguApps/renovate/refit-monorepo
pingu2k4 Jun 26, 2024
ce26c0e
Completed listing endpoints for database
pingu2k4 Jun 27, 2024
5a7ad14
Updated badges to provide more info, and started on storage
pingu2k4 Jun 27, 2024
578c89f
Completed Storage API
pingu2k4 Jun 27, 2024
71076c9
Added Functions API's
pingu2k4 Jun 30, 2024
88b6485
Changed all URLs to point to 1.5.x rather the cloud, as we want to sp…
pingu2k4 Jun 30, 2024
5d00e46
Added Messaging API's
pingu2k4 Jun 30, 2024
ac502bb
Added Locale Endpoints
pingu2k4 Jun 30, 2024
057d7e8
Added Avatars API endpoints
pingu2k4 Jun 30, 2024
bf96397
completed account requirements and replaced some URLs
pingu2k4 Jun 30, 2024
73499c6
Updated teams status
pingu2k4 Jun 30, 2024
5874b23
Updated locales statuses
pingu2k4 Jun 30, 2024
cdfd7dd
added info for avatars
pingu2k4 Jun 30, 2024
c47f279
Added details to the top, splitting progress between total, server an…
pingu2k4 Jun 30, 2024
cdb4183
Merge pull request #5 from PinguApps/progress-in-readme
pingu2k4 Jun 30, 2024
9839f21
Moved projects within src, and re-resolved references
pingu2k4 Jun 30, 2024
44ef964
Merge pull request #9 from PinguApps/6-move-playground-and-common-pro…
pingu2k4 Jun 30, 2024
1dc19d4
Added server tests
pingu2k4 Jun 30, 2024
caee4fb
lower cased headers in client header handler
pingu2k4 Jun 30, 2024
e4267d9
Added tests to client and tweaked some bits in server, including addi…
pingu2k4 Jun 30, 2024
9dfc93c
Added null enforcement to rid warning
pingu2k4 Jun 30, 2024
910d859
Merge pull request #10 from PinguApps/7-add-tests
pingu2k4 Jun 30, 2024
09f556c
Update dependency coverlet.collector to v6.0.2
renovate[bot] Jun 30, 2024
79cb738
Update xunit-dotnet monorepo to v2.8.1
renovate[bot] Jun 30, 2024
dff7fb8
Merge pull request #11 from PinguApps/renovate/coverlet.collector-6.x
pingu2k4 Jun 30, 2024
240984d
Update dependency Microsoft.NET.Test.Sdk to v17.10.0
renovate[bot] Jun 30, 2024
1c4e584
Merge pull request #12 from PinguApps/renovate/vstest-monorepo
pingu2k4 Jun 30, 2024
52e0c77
Merge pull request #13 from PinguApps/renovate/xunit-dotnet-monorepo
pingu2k4 Jun 30, 2024
4f8b0a8
Added release drafter template
pingu2k4 Jun 30, 2024
aa5e3c1
Added release drafter action
pingu2k4 Jun 30, 2024
d36385f
Added base test workflow
pingu2k4 Jun 30, 2024
18ebb7b
Added PR workflow
pingu2k4 Jun 30, 2024
d26c942
Added dev workflow
pingu2k4 Jun 30, 2024
af00ad7
Moved projects into the correct folders, and added main workflow
pingu2k4 Jun 30, 2024
f9d741a
Added icon so that it can be used for nuget packages
pingu2k4 Jul 1, 2024
95fe705
Referencing the Client proj from test correctly
pingu2k4 Jul 1, 2024
4ae8525
Modified main workflow to include snupkg's
pingu2k4 Jul 1, 2024
9a12345
Added nuget info to client proj
pingu2k4 Jul 1, 2024
d89a6f1
Added nuget info to server proj
pingu2k4 Jul 1, 2024
d947c0d
Removed server tag from client proj nuget info
pingu2k4 Jul 1, 2024
209efdd
Fixed a broken project reference in playground
pingu2k4 Jul 1, 2024
6d2d2d8
Added ability to skip building playground project for CI builds
pingu2k4 Jul 2, 2024
ffc8678
Made CI build changes
pingu2k4 Jul 2, 2024
b215708
Reverted previous buld changes for playground, and have instead exclu…
pingu2k4 Jul 2, 2024
08d4c75
Added code coverage reporting
pingu2k4 Jul 2, 2024
4e7d179
Merge pull request #14 from PinguApps/8-setup-cicd
pingu2k4 Jul 2, 2024
5ac6d86
Update actions/checkout digest to 692973e
renovate[bot] Jul 2, 2024
140784b
Update danielpalme/ReportGenerator-GitHub-Action action to v5.3.7
renovate[bot] Jul 2, 2024
69babf1
Merge pull request #15 from PinguApps/renovate/actions-checkout-digest
pingu2k4 Jul 2, 2024
0393a8b
Merge pull request #16 from PinguApps/renovate/danielpalme-reportgene…
pingu2k4 Jul 2, 2024
195ed4d
Updated readme with accurate reflection of implementation progress
pingu2k4 Jul 2, 2024
6a1b482
Merge pull request #19 from PinguApps/18-update-readme-to-show-true-c…
pingu2k4 Jul 2, 2024
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
33 changes: 33 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
change-template: "- [#$NUMBER] $TITLE - Thanks to @$AUTHOR!"
exclude-labels:
- automated
categories:
- title: "🚀 Features"
labels:
- "feature"
- "enhancement"
- title: "🐛 Bug Fixes"
labels:
- "bug"
- "fix"
- title: "📄 Documentation"
labels:
- "docs"
- "documentation"
version-resolver:
major:
labels:
- 'major'
minor:
labels:
- 'minor'
patch:
labels:
- 'patch'
default: patch
template: |
## Changes

$CHANGES
94 changes: 94 additions & 0 deletions .github/workflows/_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Workflow Test

on:
workflow_call:

env:
DOTNET_VERSION: '8.0'

jobs:
build:
name: Build & Test
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
issues: read
checks: write
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Setup .NET
uses: actions/setup-dotnet@4d6c8fcf3c8f7a60068d26b594648e99df24cee3 # v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Nuget Cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget-

- name: Restore
run: dotnet restore

- name: Build
run: dotnet build -c Release --no-restore

- name: Test
run: dotnet test -c Release --no-build --verbosity normal --logger trx --collect:"XPlat Code Coverage"

- name: Combine Coverage Reports
uses: danielpalme/ReportGenerator-GitHub-Action@345a7c3866622fe946263314218ad2c12c388b8b # 5.3.7
with:
reports: "**/*.cobertura.xml"
targetdir: "${{ github.workspace }}"
reporttypes: "Cobertura"
verbosity: "Info"
title: "Code Coverage"
tag: "${{ github.run_number }}_${{ github.run_id }}"
customSettings: ""
toolpath: "reportgeneratortool"

- name: Upload Combined Coverage XML
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4
with:
name: coverage
path: ${{ github.workspace }}/Cobertura.xml
retention-days: 5

- name: Publish Code Coverage Report
uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
with:
filename: "Cobertura.xml"
badge: true
fail_below_min: false
format: markdown
hide_branch_rate: false
hide_complexity: false
indicators: true
output: both
thresholds: "10 30"

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2
if: github.event_name == 'pull_request'
with:
recreate: true
path: code-coverage-results.md

- name: Upload Test Result Files
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4
with:
name: test-results
path: ${{ github.workspace }}/**/TestResults/**/*
retention-days: 5

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@30eadd5010312f995f0d3b3cff7fe2984f69409e # v2.16.1
if: always()
with:
trx_files: "${{ github.workspace }}/**/*.trx"
60 changes: 60 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Dev

on:
push:
branches: [ dev ]
release:
types: [ published ]
workflow_dispatch:

jobs:
build:
name: Build & Test
uses: ./.github/workflows/_test.yml
secrets: inherit
permissions:
pull-requests: write
contents: read
issues: read
checks: write

release:
name: Push to main
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'release'
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
ref: dev

- name: Get Release Version
id: releaseVersion
run: |
arrTag=(${GITHUB_REF//\// })
VERSION="${arrTag[2]}"
echo Version: $VERSION
VERSION="${VERSION:1}"
echo Clean Version: $VERSION
echo "version=$VERSION" >> ${GITHUB_OUTPUT}

- name: Create Pull Request
id: cpr
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
git fetch origin main
pr_number=$(gh pr create --base main --head dev --assignee pingu2k4 --fill --label automated --label release --title "Merge v${{ steps.releaseVersion.outputs.version }}" | grep -o 'https://github.com/[^/]\+/[^/]\+/pull/\([0-9]\+\)' | awk -F '/' '{print $NF}')
echo PR Number: $pr_number
echo "prNumber=$pr_number" >> ${GITHUB_OUTPUT}

- name: Merge Pull Request
if: ${{ steps.cpr.outputs.prNumber }}
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
gh pr merge ${{ steps.cpr.outputs.prNumber }} --auto --merge
98 changes: 98 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Main

on:
push:
branches: [ main ]
workflow_dispatch:

env:
CLIENT_PROJECT_NAME: PinguApps.Appwrite.Client
SERVER_PROJECT_NAME: PinguApps.Appwrite.Server
DOTNET_VERSION: '8.0'
NUGET_FEED: https://api.nuget.org/v3/index.json
NUGET_KEY: ${{ secrets.NUGET_KEY }}

jobs:
build:
name: Build & Test
uses: ./.github/workflows/_test.yml
secrets: inherit
permissions:
pull-requests: write
contents: read
issues: read
checks: write

push-nugets:
needs: build
name: Push Nuget's
runs-on: ubuntu-latest
permissions:
pull-requests: read
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Setup .NET
uses: actions/setup-dotnet@4d6c8fcf3c8f7a60068d26b594648e99df24cee3 # v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Get PR title
id: pr-title
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
PR_NUMBER=$(gh pr list --base main --state merged --limit 1 --json number --jq '.[0].number')
echo "PR Number: ${PR_NUMBER}"
PR_TITLE=$(gh pr view $PR_NUMBER --json title --jq '.title')
echo "PR Title: ${PR_TITLE}"
echo "PR_TITLE=${PR_TITLE}" >> $GITHUB_ENV

- name: Extract version from PR title
id: extract-version
run: |
VERSION=$(echo "${PR_TITLE}" | grep -oP 'v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?')
echo "Version: ${VERSION}"
VERSION_WITHOUT_V=${VERSION#v}
echo "Version -v: ${VERSION_WITHOUT_V}"
echo "VERSION=${VERSION_WITHOUT_V}" >> $GITHUB_ENV

- name: Create Nuget Packages
run: |
dotnet pack -c Release --verbosity normal --include-symbols --include-source -p:PackageVersion=$VERSION -o nupkg src/$CLIENT_PROJECT_NAME/$CLIENT_PROJECT_NAME.csproj
dotnet pack -c Release --verbosity normal --include-symbols --include-source -p:PackageVersion=$VERSION -o nupkg src/$SERVER_PROJECT_NAME/$SERVER_PROJECT_NAME.csproj

- name: Push to NuGet Feed
run: dotnet nuget push ./nupkg/*.{nupkg,snupkg} --source $NUGET_FEED --api-key $NUGET_KEY --skip-duplicate

sync:
name: Sync back to dev
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push'
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
ref: main

- name: Create Pull Request
id: cpr
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
git fetch origin dev
pr_number=$(gh pr create --base dev --head main --assignee pingu2k4 --fill --label automated --label sync | grep -o 'https://github.com/[^/]\+/[^/]\+/pull/\([0-9]\+\)' | awk -F '/' '{print $NF}')
echo PR Number: $pr_number
echo "prNumber=$pr_number" >> ${GITHUB_OUTPUT}

- name: Merge Pull Request
if: ${{ steps.cpr.outputs.prNumber }}
env:
GH_TOKEN: ${{ secrets.PAT }}
run: |
gh pr merge ${{ steps.cpr.outputs.prNumber }} --auto --merge
17 changes: 17 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: PR

on:
pull_request:
branches:
- dev

jobs:
build:
name: Build & Test
uses: ./.github/workflows/_test.yml
secrets: inherit
permissions:
pull-requests: write
contents: read
issues: read
checks: write
17 changes: 17 additions & 0 deletions .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Release Drafter

on:
push:
branches: [ dev ]

permissions:
contents: write
pull-requests: write

jobs:
update_release_draft:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@3f0f87098bd6b5c5b9a36d49c41d998ea58f9348 # v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -396,3 +396,5 @@ FodyWeavers.xsd

# JetBrains Rider
*.sln.iml

**/*appsettings*.json
Loading
Loading