diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..b897a870660856353e59068363830c9287b33337 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,36 @@ +image: python:3.9-buster + +before_script: + - pip install -r requirements.txt + - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' + ## + ## Run ssh-agent (inside the build environment) + ## + - eval $(ssh-agent -s) + ## + ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store + ## We're using tr to fix line endings which makes ed25519 keys work + ## without extra base64 encoding. + ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556 + ## + - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - + + ## + ## Create the SSH directory and give it the right permissions + ## + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + +pages: + stage: deploy + script: + - pwd + - cd src + - python -m unlearn.tokenpage + - cd .. + - ls + - pwd + artifacts: + paths: + - public + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..110fb16e2826d20eeae41d9f5240720650a5e635 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +diskcache +selenium +auth-code-flow diff --git a/server.pem b/server.pem new file mode 100644 index 0000000000000000000000000000000000000000..2e3ee64ff3f9a716bf0efcb6f5b196e8b23f36db --- /dev/null +++ b/server.pem @@ -0,0 +1,51 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDtu+nfL7imC3/q +SSdomzKlhAdOIMV03zjF/9fZhkls7MCfHwdbAtqvU3SBVG6VqdPT0Y+36daYjaeB +TNFG80G/3YmLwdp/55UQpjszGQGk+iOO1cf87o611Q/RyrPXgdU8YnE6g/pkNWeZ +rdUjnTGDtFmgp1RY4cdJf3FHAzX2Y3w5GFLc4fe2J0yX/EklIdB4lyD6iud0HxsR +EDoPbLUM6LCRZIGcNnK4rR64pDM9ZYeP2ja1tPX7H2E1YcLUFtn96KQO8izllTBY +lgV6nsfQNp6ucX4UoUFcLw3zoIQu3w/xmwSLGpEJu6dzbMuBqiLdEitNjt4Jku4r +eozu02qFAgMBAAECggEAAphDNCEnUtrykNlLPuM+Ubd+3KZabi04Y/iAKzkfqmVs +d41Nb9mkjB02YsqKe5u/p3J+tLP1uob6WP7UVe3vPdkni6QNBYWRRdvZMx8nh1RQ +fl/WCUzyQCsFrUqhkDDvzuffcvP8y7gMyt9v77DA79fkVR8pzi9Y3AJDOOZVS0Ue +Ky2yTpNZbXV3CDZ4Qxqyp+a2sLt5GhoQuENOpWzd9gOHusRuNJ9C6ULNMGbgkhqA +kpSEfHQs4zswgc0hTappk5qPn6LWK5hfNuLEPZKcvgcx04zq/a0jNcFRwdul1fzm +hpqaL/2ileFfW3wluZgHwcc30HfxzP2vmZFQVIfxbQKBgQD6SmaGS9O66qaX3DHR +RJHfics8BmuMG0bC1Xu8Qxatm4RA4D0ssQzObB09Gb7mhp8AW+ZhbNBPKPaaA1i5 +Kf2ZeZlMJ2Tbq54Xnny2lY1rB5TxtjoEJK/Okwg8KWXyhm+Y+9jUN85vifDTB9Et +zuHLxjV5hWIyJPZ1LVMQyQNK1wKBgQDzKC//vAWHHPDBZhWdDQzHNidruZ4BJRUl +UbxH9uZfnPNC2YmZ4Fq6V0IfYfe6i1FidlgKmqj8McA948Wti8m497TzDZ4Wg4UD +0larFYvmuv2mGhe5lmC+dRsANkDBMDlsRgW6nXeaR78X79hbkO04VwEXFqNMQdBE +GhWYa6uGAwKBgQCQyel1Vvgs8QFeaCsJfDlGr1e6aZxdeIn+u7DQv56m34gqX44E +BIf8Ad8IMZSVltr0QjWLtn7qzC+b+MOimf/ygL2FqGRYD3dtAmny1aDxgXlQOrJl +IzPwtG3XH7uyCMMWJNrSKVZqf8moyqTfcwZ78zWMDvU3PNq1/npHA4G8EQKBgFsY +3kq4PXXuQMCkJ0rMfdIQltpEE08ofnCZ26k2df6yRWzxJR0yMauIT2yEfpQz58y0 +u61VXiQF25kUQZYQPgX/P5qjqmuS4H2bCv9TtjM+MRNOyT6teRdBtljw+nemQo0u ++qx8nDd/07b7E5rShB1Mc0scHxfNvGIXR6nwBLXTAoGBAJVELi6VD0M3ipTyphmL +csq66K0AQVWZF5DjBzq5ard9g1vvzQtR7Yj77K8l2/33iwXlgU4k9PbURK6U0nXu +yB5/UpW7PMFwySyWi+9ECy5i88rd59A0y44tKg6o3+kkz1EJ9dtHRATIc0YOMqZ4 +Rx4Y1WlMxHQ6cgth2VeEGgbP +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIUEryDQqti++a1sW38AkS4bH1MbaMwDQYJKoZIhvcNAQEL +BQAwfjELMAkGA1UEBhMCREsxEzARBgNVBAgMCkNvcGVuaGFnZW4xDzANBgNVBAcM +Bkx5bmdieTENMAsGA1UECgwEQmxhaDEOMAwGA1UECwwFQmxhYWgxDjAMBgNVBAMM +BXNkbGZhMRowGAYJKoZIhvcNAQkBFgt0dWhlQGR0dS5kazAeFw0yMjEwMTAxMDE0 +MjNaFw0yMzEwMTAxMDE0MjNaMH4xCzAJBgNVBAYTAkRLMRMwEQYDVQQIDApDb3Bl +bmhhZ2VuMQ8wDQYDVQQHDAZMeW5nYnkxDTALBgNVBAoMBEJsYWgxDjAMBgNVBAsM +BUJsYWFoMQ4wDAYDVQQDDAVzZGxmYTEaMBgGCSqGSIb3DQEJARYLdHVoZUBkdHUu +ZGswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtu+nfL7imC3/qSSdo +mzKlhAdOIMV03zjF/9fZhkls7MCfHwdbAtqvU3SBVG6VqdPT0Y+36daYjaeBTNFG +80G/3YmLwdp/55UQpjszGQGk+iOO1cf87o611Q/RyrPXgdU8YnE6g/pkNWeZrdUj +nTGDtFmgp1RY4cdJf3FHAzX2Y3w5GFLc4fe2J0yX/EklIdB4lyD6iud0HxsREDoP +bLUM6LCRZIGcNnK4rR64pDM9ZYeP2ja1tPX7H2E1YcLUFtn96KQO8izllTBYlgV6 +nsfQNp6ucX4UoUFcLw3zoIQu3w/xmwSLGpEJu6dzbMuBqiLdEitNjt4Jku4reozu +02qFAgMBAAGjUzBRMB0GA1UdDgQWBBSQMKELaOGDCQSBwGOdSzmYWcQK2TAfBgNV +HSMEGDAWgBSQMKELaOGDCQSBwGOdSzmYWcQK2TAPBgNVHRMBAf8EBTADAQH/MA0G +CSqGSIb3DQEBCwUAA4IBAQDpk/9oa8tz3DxDZ4HVTIP/9xqQLdGNo/h3IR9ndR+I +2BrO+OCV5q7z6nszlgXxptpiUmcsYo0a6ZIQSXZpQHejrEgdFTpXzFSLJfFeersT +qQxuhlCKnGzpQgrV0/25SDbdy5Pzh1QjjJONPsxVBgmu07qnzUQg3ifr561gxW+i +QgKznl3jEItDUaRwdu2zWWaQa95cS1s7AqIpfMXUSn9X9c9p9EXr/3+6ppH3H4RS +o74PdqkFtZU9zE6hSU0IVYBe/qBaNeKCPZpq+mOLYaW+2S11DgXt6eFnAnJMIAVh +YUoeMj/GjUYSrSESvoavnWLA66bxjCf6oIwhkNla0DyD +-----END CERTIFICATE----- diff --git a/src/unlearn/cache/cache.db b/src/unlearn/cache/cache.db index 5a465383480a955a4d7182746db396d09b70aaf9..60a956895cd062e8a3c59c7857a054d7bb0d5509 100644 Binary files a/src/unlearn/cache/cache.db and b/src/unlearn/cache/cache.db differ diff --git a/src/unlearn/learn_config.py b/src/unlearn/learn_config.py index 72f58b8784e2cb2d5a69d59d589a032b7335f537..35a1960a33719b2eaa6ca3ea44e41014397769d5 100644 --- a/src/unlearn/learn_config.py +++ b/src/unlearn/learn_config.py @@ -152,7 +152,7 @@ class LearnConfig: else: if "refresh_token" in cc: - + import requests url = "https://auth.brightspace.com/core/connect/token" print("Getting refresh token using", refresh_token) refresh_token = cc['refresh_token'] diff --git a/src/unlearn/tokenpage.py b/src/unlearn/tokenpage.py new file mode 100644 index 0000000000000000000000000000000000000000..1897a02c8f5814cbcca1e9538828c3ac6731dd9d --- /dev/null +++ b/src/unlearn/tokenpage.py @@ -0,0 +1,9 @@ +import os + +if __name__ == "__main__": + pages = os.path.dirname(__file__) + "../../pages" + if not os.path.isdir(pages): + os.mkdir(pages) + with open(pages + "/index.html", 'w') as f: + f.write("hello world!") +