jekyll-github-pages-gem 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './base_post_service'
4
- require_relative '../github_service'
5
-
6
- module Services
7
- ##
8
- # This class is responsible for creating posts on a Jekyll website
9
- class PostCreationService < BasePostService
10
- def initialize(repo_name, access_token)
11
- super(repo_name, access_token)
12
- end
13
-
14
- ##
15
- # This method submits a new post to GitHub by checking out a new branch for the post,
16
- # if the branch already doesn't exist. Commiting and pushing the markdown and any photos
17
- # attached to the post to the branch. And then finally opening a pull request into master
18
- # for the new post.
19
- #
20
- # Params
21
- # +oauth_token+::a user's oauth access token
22
- # +post_markdown+:: the markdown contents of a post
23
- # +pull_request_body+::an optional pull request body for the post, it will be blank if nothing is provided
24
- # +reviewers+:: an optional list of reviewers for the post PR
25
- def create_post(post_markdown, post_title, pull_request_body = '', reviewers = [])
26
- # This ref_name variable represents the branch name
27
- # for creating a post. At the end we strip out all of the whitespace in
28
- # the post_title to create a valid branch name
29
- branch_name = "createPost#{post_title.gsub(/\s+/, '')}"
30
- ref_name = "heads/#{branch_name}"
31
-
32
- master_head_sha = @github_service.get_master_head_sha
33
- sha_base_tree = @github_service.get_base_tree_for_branch(master_head_sha)
34
-
35
- @github_service.create_ref_if_necessary(ref_name, master_head_sha)
36
-
37
- new_post_path = create_new_filepath_for_post(post_title)
38
- new_tree_sha = create_new_tree(post_markdown, post_title, new_post_path, sha_base_tree)
39
-
40
- @github_service.commit_and_push_to_repo("Created post #{post_title}",
41
- new_tree_sha, master_head_sha, ref_name)
42
- @github_service.create_pull_request(branch_name, 'master', "Created Post #{post_title}",
43
- pull_request_body,
44
- reviewers)
45
-
46
- PostImageManager.instance.clear
47
- end
48
-
49
- private
50
-
51
- def create_new_filepath_for_post(post_title)
52
- "_posts/#{DateTime.now.strftime('%Y-%m-%d')}-#{post_title.gsub(/\s+/, '')}.md"
53
- end
54
- end
55
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './base_post_service'
4
- require_relative '../github_service'
5
-
6
- module Services
7
- ##
8
- # This class is responsible for editing posts on a Jekyll website
9
- class PostEditingService < BasePostService
10
- def initialize(repo_name, access_token)
11
- super(repo_name, access_token)
12
- end
13
-
14
- ##
15
- # This method submits changes to an existing post to GitHub by checking out a new branch for the post,
16
- # if the branch already doesn't exist. Commiting and pushing the markdown changes and any added photos
17
- # for the existing post to the branch. And the finally opening a pull request into master for the new post.
18
- #
19
- # Params
20
- # +post_markdown+::the modified markdown to submit
21
- # +post_title+::the title for the existing post
22
- # +existing_post_file_path+::the file path to the existing post on GitHub
23
- # +pull_request_body+::an optional pull request body for the post, it will be blank if nothing is provided
24
- # +reviewers+:: an optional list of reviewers for the post PR
25
- def edit_post(post_markdown, post_title, existing_post_file_path, pull_request_body = '', reviewers = [])
26
- # This ref_name variable represents the branch name
27
- # for editing a post. At the end we strip out all of the whitespace in
28
- # the post_title to create a valid branch name
29
- branch_name = "editPost#{post_title.gsub(/\s+/, '')}"
30
- ref_name = "heads/#{branch_name}"
31
-
32
- master_head_sha = @github_service.get_master_head_sha
33
- sha_base_tree = @github_service.get_base_tree_for_branch(master_head_sha)
34
-
35
- @github_service.create_ref_if_necessary(ref_name, master_head_sha)
36
- new_tree_sha = create_new_tree(post_markdown, post_title, existing_post_file_path, sha_base_tree)
37
-
38
- @github_service.commit_and_push_to_repo("Edited post #{post_title}", new_tree_sha, master_head_sha, ref_name)
39
- @github_service.create_pull_request(branch_name, 'master', "Edited Post #{post_title}",
40
- pull_request_body,
41
- reviewers)
42
-
43
- PostImageManager.instance.clear
44
- end
45
- end
46
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './base_post_service'
4
- require_relative '../github_service'
5
-
6
- module Services
7
- ##
8
- # This class is responsible for editing posts that are in PR on a Jekyll website
9
- class PostPullRequestEditingService < BasePostService
10
- def initialize(repo_name, access_token)
11
- super(repo_name, access_token)
12
- end
13
-
14
- ##
15
- # This method submits changes to a post that is already in PR, commiting and pushing the markdown changes
16
- # and any added photos to the branch. Since the post is in PR these changes will be a PR updated to the given branch
17
- #
18
- # Params:
19
- # +post_markdown+::the modified markdown to submit
20
- # +post_title+::the title for the existing post
21
- # +existing_post_file_path+::the file path to the existing post on GitHub
22
- # +ref+::the ref to update
23
- def edit_post_in_pr(post_markdown, post_title, existing_post_file_path, ref)
24
- ref_name = @github_service.get_ref_name_by_sha(ref)
25
- sha_base_tree = @github_service.get_base_tree_for_branch(ref)
26
-
27
- new_tree_sha = create_new_tree(post_markdown, post_title, existing_post_file_path, sha_base_tree)
28
- @github_service.commit_and_push_to_repo("Edited post #{post_title}", new_tree_sha, ref, ref_name)
29
-
30
- PostImageManager.instance.clear
31
- end
32
- end
33
- end