Skip to content

Commit

Permalink
REALSE ON tag push and silent errors
Browse files Browse the repository at this point in the history
  • Loading branch information
dawkaka committed Jul 16, 2024
1 parent 1273478 commit d4b6d46
Show file tree
Hide file tree
Showing 8 changed files with 202 additions and 13 deletions.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: ""
assignees: ""
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1.
2.
3.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**

- OS: [e.g. Ubuntu 22.04, macOS 11.4]
- Node version [e.g 16.4.2]
- Code Version [e.g. 1.1.0]

**Additional context**
Add any other context about the problem here.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: GitHub Discussions
url: https://github.com/apitoolkit/apitoolkit-express/discussions
about: Please discuss non bug-related topics there
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: ""
assignees: ""
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
99 changes: 99 additions & 0 deletions .github/workflows/release_package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Release Python Package
on:
push:
tags:
- "v*"
jobs:
release:
runs-on: ubuntu-latest
steps:
# Checkout project repository
- name: Checkout
uses: actions/checkout@v3

# Setup Python environment
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.9"

# Install dependencies
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel twine
# Extract version from tag
- name: Get version from tag
run: echo "NEW_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV

# Determine if it's a pre-release
- name: Check if pre-release
run: |
if [[ ${{ env.NEW_VERSION }} == *"-"* ]]; then
echo "RELEASE_TAG=beta" >> $GITHUB_ENV
else
echo "RELEASE_TAG=latest" >> $GITHUB_ENV
fi
# Update changelog unreleased section with new version
- name: Update changelog
uses: superfaceai/release-changelog-action@v1
with:
path-to-changelog: CHANGELOG.md
version: ${{ env.NEW_VERSION }}
operation: release

- name: Update version
run: |
sed -i "s/version=.*,/version='${{ env.NEW_VERSION }}',/" setup.py
# Configure Git
- name: Git configuration
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "GitHub Actions"
# Commit changes
- name: Commit version and changelog
run: |
git add CHANGELOG.md
git add setup.py
git commit -m "chore: release ${{ env.NEW_VERSION }}"
# Push changes and tags
- name: Push changes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git push origin HEAD:main
# Build package
- name: Build package
run: python setup.py sdist bdist_wheel

- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
python -m twine upload dist/*
# Read version changelog
- id: get-changelog
name: Get version changelog
uses: superfaceai/release-changelog-action@v1
with:
path-to-changelog: CHANGELOG.md
version: ${{ env.NEW_VERSION }}
operation: read

# Update GitHub release with changelog
- name: Update GitHub release documentation
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.NEW_VERSION }}
body: ${{ steps.get-changelog.outputs.changelog }}
prerelease: ${{ startsWith(github.event.inputs.release-type, 'pre') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased
36 changes: 26 additions & 10 deletions apitoolkit_flask/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,31 @@ def __init__(self, api_key, root_url="https://app.apitoolkit.io", redact_headers
self.tags = tags
response = requests.get(
url=root_url + "/api/client_metadata", headers={"Authorization": f"Bearer {api_key}"})
response.raise_for_status()
data = response.json()
credentials = service_account.Credentials.from_service_account_info(
data["pubsub_push_service_account"])
self.publisher = pubsub_v1.PublisherClient(credentials=credentials)
self.topic_name = 'projects/{project_id}/topics/{topic}'.format(
project_id=data['pubsub_project_id'],
topic=data['topic_id'],
)
self.meta = data
if response.status_code == 401:
raise Exception(f"APIToolkit Error: Invalid API key")
elif response.status_code >= 400:
print(f"APIToolkit: Error getting client metadata {response.status_code}")
else:
data = response.json()
credentials = service_account.Credentials.from_service_account_info(
data["pubsub_push_service_account"])
self.publisher = pubsub_v1.PublisherClient(credentials=credentials)
self.topic_name = 'projects/{project_id}/topics/{topic}'.format(
project_id=data['pubsub_project_id'],
topic=data['topic_id'],
)
self.meta = data

def getInfo(self):
return {"project_id": self.meta["project_id"], "service_version": self.service_version, "tags": self.tags}

def publish_message(self, payload):

if self.topic_name is None or self.publisher is None:
if self.debug:
print("APIToolkit: No topic or publisher (restart your server to fix)")
return

data = json.dumps(payload).encode('utf-8')
if self.debug:
print("APIToolkit: publish message")
Expand Down Expand Up @@ -109,6 +119,12 @@ def beforeRequest(self):
def afterRequest(self, response):
if self.debug:
print("APIToolkit: afterRequest")

if self.meta is None:
if self.debug:
print("APIToolkit: Project ID not set (restart your server to fix)")
return

end_time = time.perf_counter_ns()
apitoolkit_request_data = g.get("apitoolkit_request_data", {})
duration = (end_time - apitoolkit_request_data.get("start_time", 0))
Expand Down
5 changes: 2 additions & 3 deletions apitoolkit_flask/test_apitoolkit.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from apitoolkit_flask import APIToolkit
from flask import Flask, request, jsonify
from werkzeug.test import Client
import sys
from . import APIToolkit
import base64
import json

Expand All @@ -20,8 +20,7 @@
]

apitoolkit = APIToolkit(
api_key="<API_KEY>",
root_url="http://localhost:8080",
api_key="",
redact_headers=redact_headers,
redact_request_body=redact_req,
redact_response_body=exampleDataRedaction,
Expand Down

0 comments on commit d4b6d46

Please sign in to comment.