From 8583693adf753755ae841f6a5c64170af6010135 Mon Sep 17 00:00:00 2001 From: gabriel-logan Date: Tue, 9 Jul 2024 03:34:51 -0300 Subject: [PATCH] chore: Add GitHub workflows for Python PR check and publishing --- .github/FUNDING.yml | 14 +++ .github/workflows/python-pr-check.yml | 32 +++++++ .github/workflows/python-publish.yml | 39 ++++++++ CODE_OF_CONDUCT.md | 128 ++++++++++++++++++++++++++ CONTRIBUTING.md | 68 ++++++++++++++ SECURITY.md | 23 +++++ 6 files changed, 304 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/python-pr-check.yml create mode 100644 .github/workflows/python-publish.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..10e4064 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,14 @@ +# These are supported funding model platforms + +github: [gabriel-logan] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +polar: # Replace with a single Polar username +buy_me_a_coffee: gabriellogan +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/workflows/python-pr-check.yml b/.github/workflows/python-pr-check.yml new file mode 100644 index 0000000..23bedbc --- /dev/null +++ b/.github/workflows/python-pr-check.yml @@ -0,0 +1,32 @@ +name: Python Pull Request Check + +on: + push: + branches: [ main ] + + pull_request: + branches: [ main ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + checking-pr: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + run: | + python -m unittest ./tests/test_multiform_validator.py \ No newline at end of file diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml new file mode 100644 index 0000000..a81a782 --- /dev/null +++ b/.github/workflows/python-publish.yml @@ -0,0 +1,39 @@ +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package + +on: + push: + branches: ["main"] + paths: + - "pyproject.toml" + + workflow_dispatch: + +permissions: + contents: read + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.x' + + - name: Cd to directory to publish in PyPi + run: | + python -m pip install --upgrade pip + pip install build + pip install twine + python -m build + twine upload -u ${{ secrets.PYPI_USER }} -p ${{ secrets.PYPI_API_TOKEN }} dist/* \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..18c9147 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..994e068 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# multiform-validator - Contribution Guide + +The multiform-validator is a powerful Multilanguage library for validating form fields in multiple languages. This guide describes the guidelines for contributing to the project efficiently and effectively. + +## How to Contribute + +1. **Fork the Repository** + - Fork the multiform-validator repository to your GitHub account. + +2. **Clone the Repository** + - Clone the forked repository to your local environment: + ``` + git clone https://github.com/gabriel-logan/multiform-validator.git + ``` + +4. **Commit and Push** + - Commit your changes and push them to the forked repository: + ``` + git add . + git commit -m "Concise description of the changes" + git push origin my-feature + ``` + +5. **Open a Pull Request (PR)** + - Go to the forked repository on GitHub and open a PR to the main branch of the project. + +## Contribution Guidelines + +feat: Adds a new feature to the project. For example: + +feat: Add controller for user management +fix: Fixes an existing bug or issue. For example: + +fix: Fix validation error in the controller +refactor: Restructures existing code without changing its functionality. For example: + +refactor: Rearrange methods in the controller for better readability +docs: Updates the project's documentation. For example: + +docs: Update documentation for the user controller +style: Makes code style-related changes, such as formatting, indentation, etc. For example: + +style: Format code in the controller according to project guidelines +test: Adds or modifies tests in the project. For example: + +test: Add tests for the user controller +chore: Performs maintenance tasks or other activities not directly related to code. For example: + +chore: Update project dependencies for compatibility with new versions +perf: Makes performance improvements in the code. For example: + +perf: Optimize data query in the controller +revert: Reverts a previous change. For example: + +revert: Revert changes in the controller due to implementation issues +ci: Makes modifications related to continuous integration (CI) and deployment. For example: + +ci: Configure CI pipeline to automatically test the controller + +- Follow the coding standards of the language you're contributing to (JavaScript, TypeScript, Java, etc.). +- Keep the code clean and readable. +- Add tests for new functionalities or bug fixes. +- Properly document the changes made, including updates to README if necessary. +- Be respectful to other contributors and maintain a collaborative environment. + +## License + +By contributing to multiform-validator, you agree that your contributions will be licensed under the MIT license. Make sure you're familiar with the terms of this license. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2deb8d5 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,23 @@ +# Security Policy + +## Reporting a Vulnerability + +If you find a vulnerability in the project, please follow these steps to report it: + +1. **Report Submission**: Send a detailed email to [gabriellogan1717@gmail.com] with information about the vulnerability. +2. **Required Information**: Include in the report details such as a description of the vulnerability, steps to reproduce it, the potential impact, and any suggested fixes. +3. **Initial Response**: You can expect an initial response within 72 hours of submitting the report. +4. **Review Process**: The vulnerability will be reviewed by our team. During this period, we may request additional information. +5. **Updates**: We will provide regular updates on the status of the review and the action plan to resolve the vulnerability. +6. **Disclosure**: If the vulnerability is confirmed, we will work on a fix and release a security update along with a vulnerability disclosure note. + +We appreciate your help in keeping the project safe and secure. + +You can also open the action in issues + +## Reporter's Responsibilities + +- Do not publicly disclose the vulnerability until it has been reviewed and fixed. +- Collaborate with the security team to provide all necessary information. + +Thank you for your contribution to the security of the multiform-validator project!