Skip to content

Commit

Permalink
Linting (#305)
Browse files Browse the repository at this point in the history
* Add megalinter configuration

Add exclusions to megalinter.

* Force megalinter to run.

* Add linter/formatter tool configuration

* Fix megalinter template issues.

* Add whitespace to test megalinter commits.

* [Mega-Linter] Apply linters fixes

Co-authored-by: TimPansino <TimPansino@users.noreply.github.com>
  • Loading branch information
TimPansino and TimPansino committed Aug 4, 2021
1 parent 2707fdf commit 1f63544
Show file tree
Hide file tree
Showing 6 changed files with 170 additions and 20 deletions.
87 changes: 87 additions & 0 deletions .github/workflows/mega-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
# Mega-Linter GitHub Action configuration file
# More info at https://nvuillam.github.io/mega-linter
name: Mega-Linter

on:
# Trigger mega-linter at every push. Action will also be visible from Pull Requests to main
# push: # Comment this line to trigger action only on pull-requests (not recommended if you don't pay for GH Actions)
pull_request:
branches: [main]

env: # Comment env block if you do not want to apply fixes
# Apply linter fixes configuration
APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment variable (in github/workflows/mega-linter.yml or other CI tool)
APPLY_FIXES_EVENT: pull_request # Decide which event triggers application of fixes in a commit or a PR (pull_request, push, all)
APPLY_FIXES_MODE: commit # If APPLY_FIXES is used, defines if the fixes are directly committed (commit) or posted in a PR (pull_request)

jobs:
# Cancel duplicate jobs: https://github.com/fkirc/skip-duplicate-actions#option-3-cancellation-only
cancel_duplicates:
name: Cancel duplicate jobs
runs-on: ubuntu-latest
steps:
- uses: fkirc/skip-duplicate-actions@master
with:
github_token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}

build:
name: Mega-Linter
runs-on: ubuntu-latest
steps:
# Git Checkout
- name: Checkout Code
uses: actions/checkout@v2
with:
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
fetch-depth: 0

# Mega-Linter
- name: Mega-Linter
id: ml
# You can override Mega-Linter flavor used to have faster performances
# More info at https://nvuillam.github.io/mega-linter/flavors/
uses: nvuillam/mega-linter/flavors/python@v4
env:
# All available variables are described in documentation
# https://nvuillam.github.io/mega-linter/configuration/
VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Set 'true' if you always want to lint all sources
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ADD YOUR CUSTOM ENV VARIABLES HERE TO OVERRIDE VALUES OF .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY

# Upload Mega-Linter artifacts
- name: Archive production artifacts
if: ${{ success() }} || ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: Mega-Linter reports
path: |
report
mega-linter.log
# Create pull request if applicable (for now works only on PR from same repository, not from forks)
- name: Create Pull Request with applied fixes
id: cpr
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
commit-message: "[Mega-Linter] Apply linters automatic fixes"
title: "[Mega-Linter] Apply linters automatic fixes"
labels: bot
- name: Create PR output
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
# Push new commit if applicable (for now works only on PR from same repository, not from forks)
- name: Prepare commit
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
run: sudo chown -Rc $UID .git/
- name: Commit and push applied linter fixes
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix')
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }}
commit_message: "[Mega-Linter] Apply linters fixes"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Linter
report/

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand Down
53 changes: 53 additions & 0 deletions .mega-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Configuration file for Mega-Linter
# See all available variables at https://nvuillam.github.io/mega-linter/configuration/ and in linters documentation

APPLY_FIXES: none # all, none, or list of linter keys
DEFAULT_BRANCH: main # Usually master or main
SHOW_ELAPSED_TIME: true
FILEIO_REPORTER: false
PRINT_ALPACA: false
VALIDATE_ALL_CODEBASE: false
ENABLE_LINTERS: # If you use ENABLE_LINTERS variable, all other linters will be disabled by default
- MARKDOWN_MARKDOWN_LINK_CHECK
- MARKDOWN_MARKDOWNLINT
- PYTHON_BANDIT
- PYTHON_BLACK
- PYTHON_FLAKE8
- PYTHON_ISORT
- PYTHON_PYLINT
- RST_RST_LINT
- RST_RSTCHECK
- RST_RSTFMT
- YAML_PRETTIER
- YAML_V8R
- YAML_YAMLLINT
# IGNORE_GITIGNORED_FILES: true # Currently broken
EXCLUDED_DIRECTORIES:
- "__pycache__"
- ".eggs"
- ".env"
- ".mypy_cache"
- ".nox"
- ".pytest_cache"
- ".pytype"
- ".tox"
- ".venv"
- "build"
- "cover"
- "cython_debug"
- "develop-eggs"
- "dist"
- "downloads"
- "eggs"
- "env"
- "htmlcov"
- "lib"
- "lib64"
- "parts"
- "report"
- "sdist"
- "python-wheels"
- "target"
- "var"
- "venv"
- "wheels"
12 changes: 12 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[tool.black]
line-length = 120
include = '\.pyi?$'

[tool.isort]
profile = "black"

[tool.pylint.messages_control]
disable = "C0330, C0326"

[tool.pylint.format]
max-line-length = "88"
4 changes: 4 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
license_files =
LICENSE
THIRD_PARTY_NOTICES.md

[flake8]
max-line-length = 120
extend-ignore = E203,E501
31 changes: 11 additions & 20 deletions tests/framework_graphene/_target_application.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from graphene import (
ObjectType,
Field,
String,
Schema,
Mutation as GrapheneMutation,
Int,
List,
NonNull,
Union,
)
from graphene import Field, Int, List
from graphene import Mutation as GrapheneMutation
from graphene import NonNull, ObjectType, Schema, String, Union


class Author(ObjectType):
Expand Down Expand Up @@ -59,7 +51,6 @@ class Library(ObjectType):
Storage = List(String)



authors = [
Author(
first_name="New",
Expand Down Expand Up @@ -120,14 +111,13 @@ class Library(ObjectType):
storage = []



class StorageAdd(GrapheneMutation):
class Arguments:
string = String(required=True)

string = String()

def mutate(parent, info, string):
def mutate(self, info, string):
storage.append(string)
return String(string=string)

Expand All @@ -140,25 +130,25 @@ class Query(ObjectType):
storage = Storage
error = String()

def resolve_library(parent, info, index):
def resolve_library(self, info, index):
# returns an object that represents a Person
return libraries[index]

def resolve_storage(parent, info):
def resolve_storage(self, info):
return storage

def resolve_search(parent, info, contains):
def resolve_search(self, info, contains):
search_books = [b for b in books if contains in b.name]
search_magazines = [m for m in magazines if contains in m.name]
return search_books + search_magazines

def resolve_hello(root, info):
def resolve_hello(self, info):
return "Hello!"

def resolve_echo(root, info, echo):
def resolve_echo(self, info, echo):
return echo

def resolve_error(root, info):
def resolve_error(self, info):
raise RuntimeError("Runtime Error!")

error_non_null = Field(NonNull(String), resolver=resolve_error)
Expand All @@ -167,4 +157,5 @@ def resolve_error(root, info):
class Mutation(ObjectType):
storage_add = StorageAdd.Field()


_target_application = Schema(query=Query, mutation=Mutation, auto_camelcase=False)

0 comments on commit 1f63544

Please sign in to comment.