{"action":"created","comment":{"url":"https://api.github.com/repos/openfun/marsha/pulls/comments/232050288","pull_request_review_id":173044037,"id":232050288,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMjA1MDI4OA==","diff_hunk":"@@ -1,117 +1,260 @@\n # Environment variables\n \n-We try to follow [12 factors app](https://12factor.net/) and so use\n-environment variables for configuration.\n+`marsha` contains several projects, two of which are configured through environment variables. There are therefore two `env.d` folders with different environment variables.\n \n-Here is a list of the ones that are needed or optional:\n+First, there is our Django backend. We try to follow [12 factors app](https://12factor.net/) and so use environment variables for configuration.\n \n-## DJANGO_SETTINGS_MODULE\n+Then, there is our aws deployment configurations in the `src/aws` folder. It looks in `src/aws/env.d`.\n \n-Description\n+## 1. Django backend environment\n \n-:   Define the settings file to use\n+Specified in `{REPO_ROOT}/env.d/development`.\n \n-Type\n+### General Django settings\n \n-:   String\n+#### DJANGO_CONFIGURATION\n \n-Mandatory\n+Define the configuration to use in settings.\n \n-:   Yes\n+- Type: `String`\n+- Required: Yes\n+- Default: `Development`\n+- Choices: Currently only `Development` is available.\n \n-Default\n+#### DJANGO_DEBUG\n \n-:   None\n+Turns on/off debug mode.\n \n-Choices\n+- Type: Boolean\n+- Required: No\n+- Default: `True` if `DJANGO_CONFIGURATION` is set to `Development`, `False` otherwise\n+- Choices: `True` or `False`\n \n-:   Must be set to `marsha.settings`\n+#### DJANGO_SECRET_KEY\n \n-## DJANGO_CONFIGURATION\n+Standard Django secret key used to make the instance unique and generate hashes such as CSRF tokens or auth keys.\n \n-Description\n+- Type: String\n+- Required: Yes\n+- Default: None\n \n-:   Define the configuration to use in settings\n+#### DJANGO_SETTINGS_MODULE\n \n-Type\n+Define the settings file to use, relative to `src/backend`.\n \n-:   String\n+- Type: `String`\n+- Required: Yes\n+- Default: `marsha.settings`\n+- Choices: Must be set to `marsha.settings`.\n \n-Mandatory\n+### Marsha specific settings\n \n-:   Yes\n+#### DJANGO_BYPASS_LTI_VERIFICATION\n \n-Default\n+Whether to skip all LTI-related checks and accept all requests on LTI endpoints as valid. This is useful for development but should never be set to `True` on publicly accessible deployments.\n \n-:   None\n+Note: Can't be set to `True` unless `DJANGO_DEBUG` is `True` too.\n \n-Choices\n+- Type: Boolean\n+- Required: No\n+- Default: `False`\n+- Choices: `True` or `False`\n \n-:   Currently only `Development` is available\n+#### DJANGO_JWT_SIGNING_KEY\n \n-## DJANGO_SECRET_KEY\n+Secret key used to sign JWTs. Those are used to communicate between the Django backend and authenticated third parties (including the frontend).\n \n-Description\n+- Type: string\n+- Required: Yes\n+- Default: None\n \n-:   Used to provide cryptographic signing, and should be set to a\n-    unique, unpredictable value\n+#### DJANGO_UPDATE_STATE_SHARED_SECRETS\n \n-Type\n+Secrets used to sign messages messages sent to the Django backend from AWS lambdas (like state updates). This being a list lets us support 1 or more shared secrets — and12 or more deployments — at the same time.\n \n-:   String\n+Note: should include the value from `TF_VAR_update_state_secret` in `src/aws` for any stack deployed to AWS which should communicate with the Django backend.\n \n-Mandatory\n+- Type: comma-separated list of strings\n+- Required: Yes\n+- Default: None\n \n-:   Yes\n+### Database-related settings\n \n-Default\n+#### DATABASE_URL\n \n-:   None\n+URL built with the connection parameters (host, database name, user name, password and connection port) to connect to a database.\n \n-## DJANGO_DEBUG\n+- Type: String\n+- Required: Varies depending on the environment.\n+  - No in development;\n+  - Yes otherwise.\n+- Default: Varies depending on the environment.\n+  - `sqlite:///path/to/project/db.sqlite3` in development;\n+  - None otherwise.\n+- Choices: See [schemas as presented by\n+    dj-database-url](https://github.com/kennethreitz/dj-database-url#url-schema).\n \n-Description\n+#### POSTGRES_DB\n \n-:   Turns on/off debug mode\n+Name for the Postgres database used by Marsha.\n \n-Type\n+- Type: string\n+- Required: No\n+- Default: `\"marsha\"`\n \n-:   Boolean\n+#### POSTGRES_HOST\n \n-Mandatory\n+Address for the Postgres database used by Marsha.\n \n-:   No\n+- Type: string\n+- Required: No\n+- Default: `\"localhost\"`\n \n-Default\n+#### POSTGRES_PASSWORD\n \n-:   `True` if `DJANGO_CONFIGURATION` is set to `Development`, `False`\n-    otherwise\n+Password corresponding to the user specified in `POSTGRES_USER`, for the Postgres database used by Marsha.\n \n-Choices\n+- Type: string\n+- Required: No\n+- Default: `\"pass\"`\n \n-:   `True` or `False`\n+#### POSTGRES_PORT\n \n+Port for the Postgres database used by Marsha.\n \n-## DATABASE_URL\n+- Type: number\n+- Required: No\n+- Default: `5432\"`\n \n-Description\n+#### POSTGRES_USER\n \n-:   URL to represent the connection string to a database\n+User to connect to the Postgres database used by Marsha.\n \n-Type\n+- Type: string\n+- Required: No\n+- Default: `\"marsha_user\"`\n \n-:   String\n+### Amazon Web Services-related settings\n \n-Mandatory\n+#### DJANGO_AWS_ACCESS_KEY_ID, DJANGO_AWS_SECRET_ACCESS_KEY\n \n-:   No if `DJANGO_CONFIGURATION` is set to `Development`, yes otherwise\n+A key ID + secret pair for an AWS IAM account with administrative access to the resources the relevant AWS deployment is using.\n \n-Default\n+- Type: string\n+- Required: Yes\n+- Default: None\n \n-:   `sqlite:///path/to/project/db.sqlite3` if `DJANGO_CONFIGURATION` is\n-    set to `Development`, None otherwise\n+#### DJANGO_AWS_DEFAULT_REGION\n \n-Choices\n+The Amazon Web Services region where we deployed or want to deploy our serverless stack.\n \n-:   See [schemas as presented by\n-    dj-database-url](https://github.com/kennethreitz/dj-database-url#url-schema)\n+- Type: string\n+- Required: No\n+- Default: `\"eu-west-1\"`\n+- Choices: Any valid AWS region name.\n+\n+#### DJANGO_AWS_SOURCE_BUCKET_NAME\n+\n+The source AWS S3 bucket where files will be uploaded by end users. This should match the name of the bucket created by the relevant AWS deployment.\n+\n+- Type: string\n+- Required: No\n+- Default: Varies depending on the environment.\n+  - `\"development-marsha-source\"` in development;\n+  - `\"test-marsha-source\"` in test;\n+  - `\"staging-marsha-source\"` in staging;\n+  - `\"preprod-marsha-source\"` in preproduction;\n+  - `\"production-marsha-source\"` in production.\n+\n+#### DJANGO_CLOUDFRONT_ACCESS_KEY_ID\n+\n+The ID of the AWS master account with which we want to sign urls (it is declared in the CloudFront distribution as a signing account).\n+\n+Note: Must be associated with a master account as IAM accounts cannot sign URLs.\n+\n+- Type: string\n+- Required:\n+  - Yes when `DJANGO_CLOUDFRONT_SIGNED_URLS_ACTIVE` is `True`;\n+  - No otherwise.\n+- Default: None;\n+\n+#### CLOUDFRONT_PRIVATE_KEY_PATH\n+\n+Path to a private key corresponding to the id in `DJANGO_CLOUDFRONT_ACCESS_KEY_ID`. Also used to sign Cloudfront URLs.\n+\n+- Type: string\n+- Required:\n+  - Yes when `DJANGO_CLOUDFRONT_SIGNED_URLS_ACTIVE` is `True` and the key is not located in the default path;\n+  - No otherwise.\n+- Default: `{REPO_ROOT}/.ssh/cloudfront_private_key`\n+\n+#### DJANGO_CLOUDFRONT_SIGNED_URLS_ACTIVE\n+\n+Whether Cloudfront URLs for MP4 files and subtitle tracks should be cryptographically signed.\n+\n+Note: Preview images are never signed as a matter of policy; adaptive streaming formats pose technical challenges when it comes to signed URLs, so we're not doing any signing there for now.\n+\n+- Type: Boolean\n+- Required: No\n+- Default: Varies depending on the environment:\n+  - `False` in development and test;\n+  - `True` in all other environments.\n+- Choices: `True` or `False`\n+\n+#### DJANGO_CLOUDFRONT_URL\n+\n+The URL for the AWS Cloudfront distribution for the relevant AWS deployment. This is the domain that will be used to distribute processed files to end users.\n+\n+- Type: string\n+- Required: Yes\n+- Default: None\n+\n+\n+## 2. AWS deployment environment\n+\n+Specified in `{REPO_ROOT}/src/aws/env.d/development`.\n+\n+#### AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY\n+\n+A key ID + secret pair for an AWS IAM account with administrative access to the resources the AWS deployment we're operating on is using.\n+\n+- Type: string\n+- Required: Yes\n+- Default: None\n+\n+#### TF_VAR_aws_region\n+\n+The Amazon Web Services region where we deployed or want to deploy our serverless stack.\n+\n+- Type: string\n+- Required: No\n+- Default: `\"eu-west-1\"`\n+- Choices: Any valid AWS region name.\n+\n+#### TF_VAR_cloudfront_access_key_id\n+\n+The ID of the AWS master account with which we want to sign urls (it is declared in the CloudFront distribution as a signing account).\n+\n+- Type: string\n+- Required: Yes\n+- Default: None\n+\n+#### TF_VAR_update_state_secret\n+\n+Secret used to sign messages exchanged between the Django backend & AWS lambdas.\n+\n+Note: should be included in the list the value from `DJANGO_UPDATE_STATE_SHARED_SECRETS` for the Django backend deployment with which our deployment's lambdas will communicate.\n+\n+- Type: string\n+- Required: Yes\n+- Default: None\n+\n+#### TF_VAR_update_state_endpoint\n+\n+Location for the Django backend endpoint for state updates our lambdas should POST to when they process files.","path":"docs/env.md","position":314,"original_position":314,"commit_id":"a3349e31118ef3ba298837819394db34c4bf2c04","original_commit_id":"a3349e31118ef3ba298837819394db34c4bf2c04","user":{"login":"sampaccoud","id":1427165,"node_id":"MDQ6VXNlcjE0MjcxNjU=","avatar_url":"https://avatars3.githubusercontent.com/u/1427165?v=4","gravatar_id":"","url":"https://api.github.com/users/sampaccoud","html_url":"https://github.com/sampaccoud","followers_url":"https://api.github.com/users/sampaccoud/followers","following_url":"https://api.github.com/users/sampaccoud/following{/other_user}","gists_url":"https://api.github.com/users/sampaccoud/gists{/gist_id}","starred_url":"https://api.github.com/users/sampaccoud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sampaccoud/subscriptions","organizations_url":"https://api.github.com/users/sampaccoud/orgs","repos_url":"https://api.github.com/users/sampaccoud/repos","events_url":"https://api.github.com/users/sampaccoud/events{/privacy}","received_events_url":"https://api.github.com/users/sampaccoud/received_events","type":"User","site_admin":false},"body":"URL of the endpoint in Marsha to which our lambdas should POST state updates when they process files.","created_at":"2018-11-08T20:30:51Z","updated_at":"2018-11-08T20:50:24Z","html_url":"https://github.com/openfun/marsha/pull/128#discussion_r232050288","pull_request_url":"https://api.github.com/repos/openfun/marsha/pulls/128","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/openfun/marsha/pulls/comments/232050288"},"html":{"href":"https://github.com/openfun/marsha/pull/128#discussion_r232050288"},"pull_request":{"href":"https://api.github.com/repos/openfun/marsha/pulls/128"}}},"pull_request":{"url":"https://api.github.com/repos/openfun/marsha/pulls/128","id":229092458,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI5MDkyNDU4","html_url":"https://github.com/openfun/marsha/pull/128","diff_url":"https://github.com/openfun/marsha/pull/128.diff","patch_url":"https://github.com/openfun/marsha/pull/128.patch","issue_url":"https://api.github.com/repos/openfun/marsha/issues/128","number":128,"state":"open","locked":false,"title":"📝(env) document available environment variables for Django & TF","user":{"login":"mbenadda","id":1932937,"node_id":"MDQ6VXNlcjE5MzI5Mzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1932937?v=4","gravatar_id":"","url":"https://api.github.com/users/mbenadda","html_url":"https://github.com/mbenadda","followers_url":"https://api.github.com/users/mbenadda/followers","following_url":"https://api.github.com/users/mbenadda/following{/other_user}","gists_url":"https://api.github.com/users/mbenadda/gists{/gist_id}","starred_url":"https://api.github.com/users/mbenadda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbenadda/subscriptions","organizations_url":"https://api.github.com/users/mbenadda/orgs","repos_url":"https://api.github.com/users/mbenadda/repos","events_url":"https://api.github.com/users/mbenadda/events{/privacy}","received_events_url":"https://api.github.com/users/mbenadda/received_events","type":"User","site_admin":false},"body":"## Purpose\r\n\r\nWe're in the process of making the project more accessible to newcomers. One of the pain points we identified was that there are a lot of required environment variables in both Django & Terraform, and that they are not documented anywhere.\r\n\r\n## Proposal\r\n\r\nThoroughly document all our environment variables in the relevant docs file.\r\n","created_at":"2018-11-07T16:39:18Z","updated_at":"2018-11-08T20:50:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"30164d5d1cb9fe08f11fd4977941d570d526bef8","assignee":{"login":"mbenadda","id":1932937,"node_id":"MDQ6VXNlcjE5MzI5Mzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1932937?v=4","gravatar_id":"","url":"https://api.github.com/users/mbenadda","html_url":"https://github.com/mbenadda","followers_url":"https://api.github.com/users/mbenadda/followers","following_url":"https://api.github.com/users/mbenadda/following{/other_user}","gists_url":"https://api.github.com/users/mbenadda/gists{/gist_id}","starred_url":"https://api.github.com/users/mbenadda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbenadda/subscriptions","organizations_url":"https://api.github.com/users/mbenadda/orgs","repos_url":"https://api.github.com/users/mbenadda/repos","events_url":"https://api.github.com/users/mbenadda/events{/privacy}","received_events_url":"https://api.github.com/users/mbenadda/received_events","type":"User","site_admin":false},"assignees":[{"login":"mbenadda","id":1932937,"node_id":"MDQ6VXNlcjE5MzI5Mzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1932937?v=4","gravatar_id":"","url":"https://api.github.com/users/mbenadda","html_url":"https://github.com/mbenadda","followers_url":"https://api.github.com/users/mbenadda/followers","following_url":"https://api.github.com/users/mbenadda/following{/other_user}","gists_url":"https://api.github.com/users/mbenadda/gists{/gist_id}","starred_url":"https://api.github.com/users/mbenadda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbenadda/subscriptions","organizations_url":"https://api.github.com/users/mbenadda/orgs","repos_url":"https://api.github.com/users/mbenadda/repos","events_url":"https://api.github.com/users/mbenadda/events{/privacy}","received_events_url":"https://api.github.com/users/mbenadda/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1064438747,"node_id":"MDU6TGFiZWwxMDY0NDM4NzQ3","url":"https://api.github.com/repos/openfun/marsha/labels/improvement","name":"improvement","color":"9900ff","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/openfun/marsha/pulls/128/commits","review_comments_url":"https://api.github.com/repos/openfun/marsha/pulls/128/comments","review_comment_url":"https://api.github.com/repos/openfun/marsha/pulls/comments{/number}","comments_url":"https://api.github.com/repos/openfun/marsha/issues/128/comments","statuses_url":"https://api.github.com/repos/openfun/marsha/statuses/a3349e31118ef3ba298837819394db34c4bf2c04","head":{"label":"openfun:document-environment-variables","ref":"document-environment-variables","sha":"a3349e31118ef3ba298837819394db34c4bf2c04","user":{"login":"openfun","id":7224891,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyMjQ4OTE=","avatar_url":"https://avatars2.githubusercontent.com/u/7224891?v=4","gravatar_id":"","url":"https://api.github.com/users/openfun","html_url":"https://github.com/openfun","followers_url":"https://api.github.com/users/openfun/followers","following_url":"https://api.github.com/users/openfun/following{/other_user}","gists_url":"https://api.github.com/users/openfun/gists{/gist_id}","starred_url":"https://api.github.com/users/openfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openfun/subscriptions","organizations_url":"https://api.github.com/users/openfun/orgs","repos_url":"https://api.github.com/users/openfun/repos","events_url":"https://api.github.com/users/openfun/events{/privacy}","received_events_url":"https://api.github.com/users/openfun/received_events","type":"Organization","site_admin":false},"repo":{"id":129740507,"node_id":"MDEwOlJlcG9zaXRvcnkxMjk3NDA1MDc=","name":"marsha","full_name":"openfun/marsha","private":false,"owner":{"login":"openfun","id":7224891,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyMjQ4OTE=","avatar_url":"https://avatars2.githubusercontent.com/u/7224891?v=4","gravatar_id":"","url":"https://api.github.com/users/openfun","html_url":"https://github.com/openfun","followers_url":"https://api.github.com/users/openfun/followers","following_url":"https://api.github.com/users/openfun/following{/other_user}","gists_url":"https://api.github.com/users/openfun/gists{/gist_id}","starred_url":"https://api.github.com/users/openfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openfun/subscriptions","organizations_url":"https://api.github.com/users/openfun/orgs","repos_url":"https://api.github.com/users/openfun/repos","events_url":"https://api.github.com/users/openfun/events{/privacy}","received_events_url":"https://api.github.com/users/openfun/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/openfun/marsha","description":"🐠 A FUN LTI video provider","fork":false,"url":"https://api.github.com/repos/openfun/marsha","forks_url":"https://api.github.com/repos/openfun/marsha/forks","keys_url":"https://api.github.com/repos/openfun/marsha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openfun/marsha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openfun/marsha/teams","hooks_url":"https://api.github.com/repos/openfun/marsha/hooks","issue_events_url":"https://api.github.com/repos/openfun/marsha/issues/events{/number}","events_url":"https://api.github.com/repos/openfun/marsha/events","assignees_url":"https://api.github.com/repos/openfun/marsha/assignees{/user}","branches_url":"https://api.github.com/repos/openfun/marsha/branches{/branch}","tags_url":"https://api.github.com/repos/openfun/marsha/tags","blobs_url":"https://api.github.com/repos/openfun/marsha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openfun/marsha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openfun/marsha/git/refs{/sha}","trees_url":"https://api.github.com/repos/openfun/marsha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openfun/marsha/statuses/{sha}","languages_url":"https://api.github.com/repos/openfun/marsha/languages","stargazers_url":"https://api.github.com/repos/openfun/marsha/stargazers","contributors_url":"https://api.github.com/repos/openfun/marsha/contributors","subscribers_url":"https://api.github.com/repos/openfun/marsha/subscribers","subscription_url":"https://api.github.com/repos/openfun/marsha/subscription","commits_url":"https://api.github.com/repos/openfun/marsha/commits{/sha}","git_commits_url":"https://api.github.com/repos/openfun/marsha/git/commits{/sha}","comments_url":"https://api.github.com/repos/openfun/marsha/comments{/number}","issue_comment_url":"https://api.github.com/repos/openfun/marsha/issues/comments{/number}","contents_url":"https://api.github.com/repos/openfun/marsha/contents/{+path}","compare_url":"https://api.github.com/repos/openfun/marsha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openfun/marsha/merges","archive_url":"https://api.github.com/repos/openfun/marsha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openfun/marsha/downloads","issues_url":"https://api.github.com/repos/openfun/marsha/issues{/number}","pulls_url":"https://api.github.com/repos/openfun/marsha/pulls{/number}","milestones_url":"https://api.github.com/repos/openfun/marsha/milestones{/number}","notifications_url":"https://api.github.com/repos/openfun/marsha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openfun/marsha/labels{/name}","releases_url":"https://api.github.com/repos/openfun/marsha/releases{/id}","deployments_url":"https://api.github.com/repos/openfun/marsha/deployments","created_at":"2018-04-16T12:32:54Z","updated_at":"2018-11-08T20:33:31Z","pushed_at":"2018-11-08T20:33:33Z","git_url":"git://github.com/openfun/marsha.git","ssh_url":"git@github.com:openfun/marsha.git","clone_url":"https://github.com/openfun/marsha.git","svn_url":"https://github.com/openfun/marsha","homepage":"","size":557,"stargazers_count":4,"watchers_count":4,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":8,"watchers":4,"default_branch":"master"}},"base":{"label":"openfun:master","ref":"master","sha":"1dd2d1c5a5f201ecbfedd80a42977634e34cf96a","user":{"login":"openfun","id":7224891,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyMjQ4OTE=","avatar_url":"https://avatars2.githubusercontent.com/u/7224891?v=4","gravatar_id":"","url":"https://api.github.com/users/openfun","html_url":"https://github.com/openfun","followers_url":"https://api.github.com/users/openfun/followers","following_url":"https://api.github.com/users/openfun/following{/other_user}","gists_url":"https://api.github.com/users/openfun/gists{/gist_id}","starred_url":"https://api.github.com/users/openfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openfun/subscriptions","organizations_url":"https://api.github.com/users/openfun/orgs","repos_url":"https://api.github.com/users/openfun/repos","events_url":"https://api.github.com/users/openfun/events{/privacy}","received_events_url":"https://api.github.com/users/openfun/received_events","type":"Organization","site_admin":false},"repo":{"id":129740507,"node_id":"MDEwOlJlcG9zaXRvcnkxMjk3NDA1MDc=","name":"marsha","full_name":"openfun/marsha","private":false,"owner":{"login":"openfun","id":7224891,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcyMjQ4OTE=","avatar_url":"https://avatars2.githubusercontent.com/u/7224891?v=4","gravatar_id":"","url":"https://api.github.com/users/openfun","html_url":"https://github.com/openfun","followers_url":"https://api.github.com/users/openfun/followers","following_url":"https://api.github.com/users/openfun/following{/other_user}","gists_url":"https://api.github.com/users/openfun/gists{/gist_id}","starred_url":"https://api.github.com/users/openfun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openfun/subscriptions","organizations_url":"https://api.github.com/users/openfun/orgs","repos_url":"https://api.github.com/users/openfun/repos","events_url":"https://api.github.com/users/openfun/events{/privacy}","received_events_url":"https://api.github.com/users/openfun/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/openfun/marsha","description":"🐠 A FUN LTI video provider","fork":false,"url":"https://api.github.com/repos/openfun/marsha","forks_url":"https://api.github.com/repos/openfun/marsha/forks","keys_url":"https://api.github.com/repos/openfun/marsha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/openfun/marsha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/openfun/marsha/teams","hooks_url":"https://api.github.com/repos/openfun/marsha/hooks","issue_events_url":"https://api.github.com/repos/openfun/marsha/issues/events{/number}","events_url":"https://api.github.com/repos/openfun/marsha/events","assignees_url":"https://api.github.com/repos/openfun/marsha/assignees{/user}","branches_url":"https://api.github.com/repos/openfun/marsha/branches{/branch}","tags_url":"https://api.github.com/repos/openfun/marsha/tags","blobs_url":"https://api.github.com/repos/openfun/marsha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/openfun/marsha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/openfun/marsha/git/refs{/sha}","trees_url":"https://api.github.com/repos/openfun/marsha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/openfun/marsha/statuses/{sha}","languages_url":"https://api.github.com/repos/openfun/marsha/languages","stargazers_url":"https://api.github.com/repos/openfun/marsha/stargazers","contributors_url":"https://api.github.com/repos/openfun/marsha/contributors","subscribers_url":"https://api.github.com/repos/openfun/marsha/subscribers","subscription_url":"https://api.github.com/repos/openfun/marsha/subscription","commits_url":"https://api.github.com/repos/openfun/marsha/commits{/sha}","git_commits_url":"https://api.github.com/repos/openfun/marsha/git/commits{/sha}","comments_url":"https://api.github.com/repos/openfun/marsha/comments{/number}","issue_comment_url":"https://api.github.com/repos/openfun/marsha/issues/comments{/number}","contents_url":"https://api.github.com/repos/openfun/marsha/contents/{+path}","compare_url":"https://api.github.com/repos/openfun/marsha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/openfun/marsha/merges","archive_url":"https://api.github.com/repos/openfun/marsha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/openfun/marsha/downloads","issues_url":"https://api.github.com/repos/openfun/marsha/issues{/number}","pulls_url":"https://api.github.com/repos/openfun/marsha/pulls{/number}","milestones_url":"https://api.github.com/repos/openfun/marsha/milestones{/number}","notifications_url":"https://api.github.com/repos/openfun/marsha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/openfun/marsha/labels{/name}","releases_url":"https://api.github.com/repos/openfun/marsha/releases{/id}","deployments_url":"https://api.github.com/repos/openfun/marsha/deployments","created_at":"2018-04-16T12:32:54Z","updated_at":"2018-11-08T20:33:31Z","pushed_at":"2018-11-08T20:33:33Z","git_url":"git://github.com/openfun/marsha.git","ssh_url":"git@github.com:openfun/marsha.git","clone_url":"https://github.com/openfun/marsha.git","svn_url":"https://github.com/openfun/marsha","homepage":"","size":557,"stargazers_count":4,"watchers_count":4,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":8,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/openfun/marsha/pulls/128"},"html":{"href":"https://github.com/openfun/marsha/pull/128"},"issue":{"href":"https://api.github.com/repos/openfun/marsha/issues/128"},"comments":{"href":"https://api.github.com/repos/openfun/marsha/issues/128/comments"},"review_comments":{"href":"https://api.github.com/repos/openfun/marsha/pulls/128/comments"},"review_comment":{"href":"https://api.github.com/repos/openfun/marsha/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/openfun/marsha/pulls/128/commits"},"statuses":{"href":"https://api.github.com/repos/openfun/marsha/statuses/a3349e31118ef3ba298837819394db34c4bf2c04"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"sampaccoud"}}