{"action":"closed","number":75,"pull_request":{"url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75","id":207933744,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3OTMzNzQ0","html_url":"https://github.com/lvl-up/ci-cd-training/pull/75","diff_url":"https://github.com/lvl-up/ci-cd-training/pull/75.diff","patch_url":"https://github.com/lvl-up/ci-cd-training/pull/75.patch","issue_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/75","number":75,"state":"closed","locked":false,"title":"42 verify generated content","user":{"login":"lashd","id":118616,"node_id":"MDQ6VXNlcjExODYxNg==","avatar_url":"https://avatars0.githubusercontent.com/u/118616?v=4","gravatar_id":"","url":"https://api.github.com/users/lashd","html_url":"https://github.com/lashd","followers_url":"https://api.github.com/users/lashd/followers","following_url":"https://api.github.com/users/lashd/following{/other_user}","gists_url":"https://api.github.com/users/lashd/gists{/gist_id}","starred_url":"https://api.github.com/users/lashd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lashd/subscriptions","organizations_url":"https://api.github.com/users/lashd/orgs","repos_url":"https://api.github.com/users/lashd/repos","events_url":"https://api.github.com/users/lashd/events{/privacy}","received_events_url":"https://api.github.com/users/lashd/received_events","type":"User","site_admin":false},"body":"## course_content:checksum\r\nI have added the task `course_content:checksum` this will check that the generated course content is based on the latest version of the corresponding templates. The task runs as part of the default rake task and will fail the CI build if the course content is not up to date.\r\n\r\nChecksumming is done by looking that the revision statement at the end of the file. If the revision is equal to the digest of the the corresponding template it is considered to be up to date.\r\n\r\nWhere files are found to not be up to date, the following output is given:\r\n```\r\n$ rake course_content:checksum\r\nrake aborted!\r\nCourseContentOutOfDateError: The following files are out of date and need to be Re-rendered:\r\n- /Users/leon/Projects/ci-cd-training/exercises/IaC/ansible/running_ansible/README.md\r\n- /Users/leon/Projects/ci-cd-training/exercises/IaC/ansible/writing_playbooks/README.md\r\n- /Users/leon/Projects/ci-cd-training/README.md\"\r\n/Users/leon/Projects/ci-cd-training/tasks/course_content.rake:30:in `block (2 levels) in <top (required)>'\r\n/Users/leon/.rvm/gems/ruby-2.4.3@ci-cd-training/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'\r\n/Users/leon/.rvm/gems/ruby-2.4.3@ci-cd-training/bin/ruby_executable_hooks:15:in `eval'\r\n/Users/leon/.rvm/gems/ruby-2.4.3@ci-cd-training/bin/ruby_executable_hooks:15:in `<main>'\r\nTasks: TOP => course_content:checksum\r\n(See full trace by running task with --trace)\r\n```\r\n\r\n## course_content:generate\r\nI have moved the course_content_generate task under the course_content namespace, therefore grouping it with the new course_content:checksum task. This task no longer runs as part of the default rake task / CI build. Rather it is for contributors to run it as on demand.\r\n\r\n","created_at":"2018-08-13T10:30:18Z","updated_at":"2018-08-13T10:56:35Z","closed_at":"2018-08-13T10:56:35Z","merged_at":"2018-08-13T10:56:35Z","merge_commit_sha":"b8d9a958b6e462be6da0c05991aee69ac2a9cbd6","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75/commits","review_comments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75/comments","review_comment_url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/75/comments","statuses_url":"https://api.github.com/repos/lvl-up/ci-cd-training/statuses/b35e2b69328a66f88bc19aead872282060f19087","head":{"label":"lvl-up:42_verify_generated_content","ref":"42_verify_generated_content","sha":"b35e2b69328a66f88bc19aead872282060f19087","user":{"login":"lvl-up","id":601929,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTkyOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/601929?v=4","gravatar_id":"","url":"https://api.github.com/users/lvl-up","html_url":"https://github.com/lvl-up","followers_url":"https://api.github.com/users/lvl-up/followers","following_url":"https://api.github.com/users/lvl-up/following{/other_user}","gists_url":"https://api.github.com/users/lvl-up/gists{/gist_id}","starred_url":"https://api.github.com/users/lvl-up/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lvl-up/subscriptions","organizations_url":"https://api.github.com/users/lvl-up/orgs","repos_url":"https://api.github.com/users/lvl-up/repos","events_url":"https://api.github.com/users/lvl-up/events{/privacy}","received_events_url":"https://api.github.com/users/lvl-up/received_events","type":"Organization","site_admin":false},"repo":{"id":133797412,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM3OTc0MTI=","name":"ci-cd-training","full_name":"lvl-up/ci-cd-training","owner":{"login":"lvl-up","id":601929,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTkyOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/601929?v=4","gravatar_id":"","url":"https://api.github.com/users/lvl-up","html_url":"https://github.com/lvl-up","followers_url":"https://api.github.com/users/lvl-up/followers","following_url":"https://api.github.com/users/lvl-up/following{/other_user}","gists_url":"https://api.github.com/users/lvl-up/gists{/gist_id}","starred_url":"https://api.github.com/users/lvl-up/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lvl-up/subscriptions","organizations_url":"https://api.github.com/users/lvl-up/orgs","repos_url":"https://api.github.com/users/lvl-up/repos","events_url":"https://api.github.com/users/lvl-up/events{/privacy}","received_events_url":"https://api.github.com/users/lvl-up/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lvl-up/ci-cd-training","description":null,"fork":false,"url":"https://api.github.com/repos/lvl-up/ci-cd-training","forks_url":"https://api.github.com/repos/lvl-up/ci-cd-training/forks","keys_url":"https://api.github.com/repos/lvl-up/ci-cd-training/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lvl-up/ci-cd-training/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lvl-up/ci-cd-training/teams","hooks_url":"https://api.github.com/repos/lvl-up/ci-cd-training/hooks","issue_events_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/events{/number}","events_url":"https://api.github.com/repos/lvl-up/ci-cd-training/events","assignees_url":"https://api.github.com/repos/lvl-up/ci-cd-training/assignees{/user}","branches_url":"https://api.github.com/repos/lvl-up/ci-cd-training/branches{/branch}","tags_url":"https://api.github.com/repos/lvl-up/ci-cd-training/tags","blobs_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/refs{/sha}","trees_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lvl-up/ci-cd-training/statuses/{sha}","languages_url":"https://api.github.com/repos/lvl-up/ci-cd-training/languages","stargazers_url":"https://api.github.com/repos/lvl-up/ci-cd-training/stargazers","contributors_url":"https://api.github.com/repos/lvl-up/ci-cd-training/contributors","subscribers_url":"https://api.github.com/repos/lvl-up/ci-cd-training/subscribers","subscription_url":"https://api.github.com/repos/lvl-up/ci-cd-training/subscription","commits_url":"https://api.github.com/repos/lvl-up/ci-cd-training/commits{/sha}","git_commits_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/commits{/sha}","comments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/comments{/number}","issue_comment_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/comments{/number}","contents_url":"https://api.github.com/repos/lvl-up/ci-cd-training/contents/{+path}","compare_url":"https://api.github.com/repos/lvl-up/ci-cd-training/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lvl-up/ci-cd-training/merges","archive_url":"https://api.github.com/repos/lvl-up/ci-cd-training/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lvl-up/ci-cd-training/downloads","issues_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues{/number}","pulls_url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls{/number}","milestones_url":"https://api.github.com/repos/lvl-up/ci-cd-training/milestones{/number}","notifications_url":"https://api.github.com/repos/lvl-up/ci-cd-training/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lvl-up/ci-cd-training/labels{/name}","releases_url":"https://api.github.com/repos/lvl-up/ci-cd-training/releases{/id}","deployments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/deployments","created_at":"2018-05-17T10:26:05Z","updated_at":"2018-08-13T09:16:59Z","pushed_at":"2018-08-13T10:56:34Z","git_url":"git://github.com/lvl-up/ci-cd-training.git","ssh_url":"git@github.com:lvl-up/ci-cd-training.git","clone_url":"https://github.com/lvl-up/ci-cd-training.git","svn_url":"https://github.com/lvl-up/ci-cd-training","homepage":null,"size":401,"stargazers_count":1,"watchers_count":1,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":22,"license":null,"forks":3,"open_issues":22,"watchers":1,"default_branch":"master"}},"base":{"label":"lvl-up:master","ref":"master","sha":"5152c4e534d55fbb32070aa33beaa351a1701a6a","user":{"login":"lvl-up","id":601929,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTkyOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/601929?v=4","gravatar_id":"","url":"https://api.github.com/users/lvl-up","html_url":"https://github.com/lvl-up","followers_url":"https://api.github.com/users/lvl-up/followers","following_url":"https://api.github.com/users/lvl-up/following{/other_user}","gists_url":"https://api.github.com/users/lvl-up/gists{/gist_id}","starred_url":"https://api.github.com/users/lvl-up/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lvl-up/subscriptions","organizations_url":"https://api.github.com/users/lvl-up/orgs","repos_url":"https://api.github.com/users/lvl-up/repos","events_url":"https://api.github.com/users/lvl-up/events{/privacy}","received_events_url":"https://api.github.com/users/lvl-up/received_events","type":"Organization","site_admin":false},"repo":{"id":133797412,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM3OTc0MTI=","name":"ci-cd-training","full_name":"lvl-up/ci-cd-training","owner":{"login":"lvl-up","id":601929,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTkyOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/601929?v=4","gravatar_id":"","url":"https://api.github.com/users/lvl-up","html_url":"https://github.com/lvl-up","followers_url":"https://api.github.com/users/lvl-up/followers","following_url":"https://api.github.com/users/lvl-up/following{/other_user}","gists_url":"https://api.github.com/users/lvl-up/gists{/gist_id}","starred_url":"https://api.github.com/users/lvl-up/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lvl-up/subscriptions","organizations_url":"https://api.github.com/users/lvl-up/orgs","repos_url":"https://api.github.com/users/lvl-up/repos","events_url":"https://api.github.com/users/lvl-up/events{/privacy}","received_events_url":"https://api.github.com/users/lvl-up/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lvl-up/ci-cd-training","description":null,"fork":false,"url":"https://api.github.com/repos/lvl-up/ci-cd-training","forks_url":"https://api.github.com/repos/lvl-up/ci-cd-training/forks","keys_url":"https://api.github.com/repos/lvl-up/ci-cd-training/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lvl-up/ci-cd-training/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lvl-up/ci-cd-training/teams","hooks_url":"https://api.github.com/repos/lvl-up/ci-cd-training/hooks","issue_events_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/events{/number}","events_url":"https://api.github.com/repos/lvl-up/ci-cd-training/events","assignees_url":"https://api.github.com/repos/lvl-up/ci-cd-training/assignees{/user}","branches_url":"https://api.github.com/repos/lvl-up/ci-cd-training/branches{/branch}","tags_url":"https://api.github.com/repos/lvl-up/ci-cd-training/tags","blobs_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/refs{/sha}","trees_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lvl-up/ci-cd-training/statuses/{sha}","languages_url":"https://api.github.com/repos/lvl-up/ci-cd-training/languages","stargazers_url":"https://api.github.com/repos/lvl-up/ci-cd-training/stargazers","contributors_url":"https://api.github.com/repos/lvl-up/ci-cd-training/contributors","subscribers_url":"https://api.github.com/repos/lvl-up/ci-cd-training/subscribers","subscription_url":"https://api.github.com/repos/lvl-up/ci-cd-training/subscription","commits_url":"https://api.github.com/repos/lvl-up/ci-cd-training/commits{/sha}","git_commits_url":"https://api.github.com/repos/lvl-up/ci-cd-training/git/commits{/sha}","comments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/comments{/number}","issue_comment_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/comments{/number}","contents_url":"https://api.github.com/repos/lvl-up/ci-cd-training/contents/{+path}","compare_url":"https://api.github.com/repos/lvl-up/ci-cd-training/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lvl-up/ci-cd-training/merges","archive_url":"https://api.github.com/repos/lvl-up/ci-cd-training/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lvl-up/ci-cd-training/downloads","issues_url":"https://api.github.com/repos/lvl-up/ci-cd-training/issues{/number}","pulls_url":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls{/number}","milestones_url":"https://api.github.com/repos/lvl-up/ci-cd-training/milestones{/number}","notifications_url":"https://api.github.com/repos/lvl-up/ci-cd-training/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lvl-up/ci-cd-training/labels{/name}","releases_url":"https://api.github.com/repos/lvl-up/ci-cd-training/releases{/id}","deployments_url":"https://api.github.com/repos/lvl-up/ci-cd-training/deployments","created_at":"2018-05-17T10:26:05Z","updated_at":"2018-08-13T09:16:59Z","pushed_at":"2018-08-13T10:56:34Z","git_url":"git://github.com/lvl-up/ci-cd-training.git","ssh_url":"git@github.com:lvl-up/ci-cd-training.git","clone_url":"https://github.com/lvl-up/ci-cd-training.git","svn_url":"https://github.com/lvl-up/ci-cd-training","homepage":null,"size":401,"stargazers_count":1,"watchers_count":1,"language":"Ruby","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":22,"license":null,"forks":3,"open_issues":22,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75"},"html":{"href":"https://github.com/lvl-up/ci-cd-training/pull/75"},"issue":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/75"},"comments":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/issues/75/comments"},"review_comments":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75/comments"},"review_comment":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/pulls/75/commits"},"statuses":{"href":"https://api.github.com/repos/lvl-up/ci-cd-training/statuses/b35e2b69328a66f88bc19aead872282060f19087"}},"author_association":"CONTRIBUTOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"jimconner","id":9944861,"node_id":"MDQ6VXNlcjk5NDQ4NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9944861?v=4","gravatar_id":"","url":"https://api.github.com/users/jimconner","html_url":"https://github.com/jimconner","followers_url":"https://api.github.com/users/jimconner/followers","following_url":"https://api.github.com/users/jimconner/following{/other_user}","gists_url":"https://api.github.com/users/jimconner/gists{/gist_id}","starred_url":"https://api.github.com/users/jimconner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jimconner/subscriptions","organizations_url":"https://api.github.com/users/jimconner/orgs","repos_url":"https://api.github.com/users/jimconner/repos","events_url":"https://api.github.com/users/jimconner/events{/privacy}","received_events_url":"https://api.github.com/users/jimconner/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":5,"additions":142,"deletions":36,"changed_files":13}}
{"actor":{"display_login":"jimconner"}}