Repository: ucfopen/canvasapi (language: python)

Issue:
Investigate GitHub Actions
We've been using TravisCI for a while now, but I'd like us to take a look at GitHub Actions and see if it suits our purposes.

Motivations:

- Simplify workflow by removing third-party services (Travis and possibly Coveralls)
- Evaluate GitHub Actions for other projects (particularly, internal private repos on GitHub)
- See if there are any additional features we can leverage that Travis doesn't provide


Discussion / hints:

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf7cb611..137c4ccb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@
 ### General
 
 - Added `RateLimitExceeded` exception to distinguish between being rate limited and being otherwise forbidden from accesing a resource. It is a subclass of the `Forbidden` exception.
-
+- Set up GitHub Actions for running tests
 
 ## [2.1.0] - 2020-12-04
 
diff --git a/scripts/find_missing_kwargs.py b/scripts/find_missing_kwargs.py
index 41325943..92969a8b 100644
--- a/scripts/find_missing_kwargs.py
+++ b/scripts/find_missing_kwargs.py
@@ -1,5 +1,4 @@
 import inspect
-import operator
 import os
 import sys
 
diff --git a/setup.cfg b/setup.cfg
index d690360f..e65387d1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -3,6 +3,9 @@ source = canvasapi/
 
 [flake8]
 max-line-length = 99
+exclude = .git,__pycache__,docs/conf.py,old,build,dist
+statistics = True
+show_source = True
 
 [isort]
 profile=black


Test patch:
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
new file mode 100644
index 00000000..3d3e3fd5
--- /dev/null
+++ b/.github/workflows/run-tests.yml
@@ -0,0 +1,35 @@
+name: Run tests
+
+on: [push]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: [3.6, 3.7, 3.8]
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install -r tests_requirements.txt
+      - name: Lint with flake8
+        run: flake8
+      - name: Check formatting
+        run: black --check canvasapi tests
+      - name: Sort imports
+        run: isort --check canvasapi tests
+      - name: Run tests
+        run: coverage run -m unittest discover
+      - name: Lint markdown files
+        uses: bewuethr/mdl-action@v1
+      - name: Check if methods are alphabetical
+        run: python scripts/alphabetic.py
+      - name: Check for missing kwargs
+        run: python scripts/find_missing_kwargs.py