kramdown-plantuml 1.0.5 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71464ee363c4a9b9859ffd72421d6840d1f26018a0fdc20eaae4fa4f17011f26
4
- data.tar.gz: f4cde15688ebcc236bfd2e3f5458c8d62722b8ff4fdac2767682f32643839013
3
+ metadata.gz: 488e793ad6c95b20619319fdec43866b7a96369321767eb415c441b2d8946c0c
4
+ data.tar.gz: 2f9b7957b2b7d09ebe2758d1fc3f3600c7464f2ccee53d5ea11f04bf25b0df33
5
5
  SHA512:
6
- metadata.gz: ed9a469ba9ec78c8d498fab3cb412220466d76344aadceea56d89634f8f2b25523bc10566a023ecdd7e3a8fa7373a0c49d2677e5ceb6058206e913ffd5cb3a7b
7
- data.tar.gz: 5d969b52c7cf030910cc6ffe6d0c85c7492487c421de35a40e9f6ca965bf35420761ca4be1540eba53eecb339154a94e212815525bd18529d96e3236b9949efb
6
+ metadata.gz: 4e4547033622f876ea2c63eb4af2f73433e57fa4cbe8bdd818bbcb5261f4bef829f50da55b9f5485023e5c040d7c260844f27fcf2a67f17858839aa4e9f0dab3
7
+ data.tar.gz: cd38086b669bf27b64ccae97f45005a23a508fdfd94647e40c2f8e9960a89edc0abd2781c74fb42493c1b1df7bd5c0aaee6c19acd63cf20394d594c077cc072d
@@ -0,0 +1,2 @@
1
+ ignore:
2
+ - "spec"
@@ -0,0 +1,23 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "03:00"
8
+ timezone: Europe/Oslo
9
+ open-pull-requests-limit: 99
10
+ - package-ecosystem: maven
11
+ directory: "/"
12
+ schedule:
13
+ interval: daily
14
+ time: "03:00"
15
+ timezone: Europe/Oslo
16
+ open-pull-requests-limit: 99
17
+ - package-ecosystem: github-actions
18
+ directory: "/"
19
+ schedule:
20
+ interval: daily
21
+ time: "03:00"
22
+ timezone: Europe/Oslo
23
+ open-pull-requests-limit: 99
@@ -0,0 +1,22 @@
1
+ pull_request_rules:
2
+ - name: Automatic approve on dependabot PR
3
+ conditions:
4
+ - author~=^dependabot(|-preview)\[bot\]$
5
+ actions:
6
+ review:
7
+ type: APPROVE
8
+
9
+ - name: Automatic merge on approval
10
+ conditions:
11
+ - author~=^dependabot(|-preview)\[bot\]$
12
+ actions:
13
+ merge:
14
+ method: merge
15
+ strict: smart
16
+
17
+ - name: Thank contributor
18
+ conditions:
19
+ - merged
20
+ actions:
21
+ comment:
22
+ message: "Thank you @{{author}} for your contribution!"
@@ -0,0 +1,176 @@
1
+ #!/bin/bash
2
+ set -o errexit # Abort if any command fails
3
+ me=$(basename "$0")
4
+
5
+ help_message="\
6
+ Usage: echo $me --user <username>
7
+
8
+ Checks out the pull request where an '/amend' comment is made and amends its
9
+ latest commit with the credentials of the user who wrote the '/amend' comment.
10
+
11
+ Arguments:
12
+ -u, --user The user name to use when authenticating against the remote
13
+ Git repository.
14
+ -h, --help Displays this help screen.
15
+ -v, --verbose Increase verbosity. Useful for debugging.
16
+
17
+ Environment Variables:
18
+ GITHUB_CONTEXT: An environment variable containing a JSON string of the GitHub
19
+ context object. Typically generated with \${{ toJson(github) }}.
20
+ GITHUB_TOKEN: The personal access token to use to authenticate against the
21
+ remote Git repository."
22
+
23
+ parse_args() {
24
+ while : ; do
25
+ if [[ $1 = "-h" || $1 = "--help" ]]; then
26
+ echo "$help_message"
27
+ return 0
28
+ elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
29
+ verbose=true
30
+ shift
31
+ elif [[ ( $1 = "-u" || $1 = "--user" ) && -n $2 ]]; then
32
+ auth_user=$2
33
+ shift 2
34
+ else
35
+ break
36
+ fi
37
+ done
38
+ }
39
+
40
+ parse_github_context() {
41
+ github_context_json="$GITHUB_CONTEXT"
42
+
43
+ if [[ -z "$github_context_json" ]]; then
44
+ echo "Missing or empty GITHUB_CONTEXT environment variable." >&2
45
+ echo "$help_message"
46
+ exit 1
47
+ fi
48
+
49
+ if [[ -z "$GITHUB_TOKEN" ]]; then
50
+ echo "Missing or empty GITHUB_TOKEN environment variable." >&2
51
+ echo "$help_message"
52
+ exit 1
53
+ fi
54
+
55
+ if [[ -z "$auth_user" ]]; then
56
+ echo "Missing or empty 'auth_user' argument." >&2
57
+ echo "$help_message"
58
+ exit 1
59
+ fi
60
+
61
+ sha=$(echo "$github_context_json" | jq --raw-output .sha)
62
+ pr_url=$(echo "$github_context_json" | jq --raw-output .event.issue.pull_request.html_url)
63
+ sender_login=$(echo "$github_context_json" | jq --raw-output .event.sender.login)
64
+ sender_url=$(echo "$github_context_json" | jq --raw-output .event.sender.url)
65
+ repo_url=$(echo "$github_context_json" | jq --raw-output .event.repository.html_url)
66
+ repo_clone_url=$(echo "$github_context_json" | jq --raw-output .event.repository.clone_url)
67
+ collaborators_url=$(echo "$github_context_json" | jq --raw-output .event.repository.collaborators_url)
68
+
69
+ if [[ -z "$sha" ]]; then
70
+ echo "No 'sha' found in the GitHub context." >&2
71
+ echo "$help_message"
72
+ exit 1
73
+ fi
74
+
75
+ if [[ -z "$pr_url" ]]; then
76
+ echo "No 'event.issue.pull_request.html_url' found in the GitHub context." >&2
77
+ echo "$help_message"
78
+ exit 1
79
+ fi
80
+
81
+ if [[ -z "$sender_login" ]]; then
82
+ echo "No 'event.sender.login' found in the GitHub context." >&2
83
+ echo "$help_message"
84
+ exit 1
85
+ fi
86
+
87
+ if [[ -z "$sender_url" ]]; then
88
+ echo "No 'event.sender.url' found in the GitHub context." >&2
89
+ echo "$help_message"
90
+ exit 1
91
+ fi
92
+
93
+ if [[ -z "$repo_url" ]]; then
94
+ echo "No 'event.repository.html_url' found in the GitHub context." >&2
95
+ echo "$help_message"
96
+ exit 1
97
+ fi
98
+
99
+ if [[ -z "$repo_clone_url" ]]; then
100
+ echo "No 'event.repository.clone_url' found in the GitHub context." >&2
101
+ echo "$help_message"
102
+ exit 1
103
+ fi
104
+
105
+ if [[ -z "$collaborators_url" ]]; then
106
+ echo "No 'event.repository.collaborators_url' found in the GitHub context." >&2
107
+ echo "$help_message"
108
+ exit 1
109
+ fi
110
+
111
+ user_json=$(gh api -X GET "$sender_url")
112
+
113
+ if [[ -z "$user_json" ]]; then
114
+ echo "The request for '$sender_url' failed." >&2
115
+ echo "$help_message"
116
+ exit 1
117
+ fi
118
+
119
+ name=$(echo "$user_json" | jq --raw-output .name)
120
+ email=$(echo "$user_json" | jq --raw-output .email)
121
+
122
+ if [[ -z "$name" ]]; then
123
+ echo "No 'name' found in '$sender_url'." >&2
124
+ echo "$help_message"
125
+ exit 1
126
+ fi
127
+
128
+ if [[ -z "$email" ]]; then
129
+ echo "No 'email' found in '$sender_url'." >&2
130
+ echo "$help_message"
131
+ exit 1
132
+ fi
133
+
134
+ # Replace the template part of the URL with the sender_login (collaborator).
135
+ # https://api.github.com/repos/asbjornu/test/collaborators{/collaborator}
136
+ collaborator_url="${collaborators_url/\{\/collaborator\}//$sender_login}"
137
+
138
+ # Add sender_login and password to the repository clone URL
139
+ authenticated_repo_url="${repo_clone_url/github\.com/$auth_user:$GITHUB_TOKEN@github.com}"
140
+ }
141
+
142
+ # echo expanded commands as they are executed (for debugging)
143
+ enable_expanded_output() {
144
+ if [ $verbose ]; then
145
+ set -o xtrace
146
+ set +o verbose
147
+ fi
148
+ }
149
+
150
+ amend() {
151
+ gh pr checkout "$pr_url"
152
+ gh pr comment --body "The commit $sha is being amended."
153
+ git config --global user.name "$name"
154
+ git config --global user.email "$email"
155
+ git remote set-url origin "$authenticated_repo_url"
156
+ git commit --amend --no-edit
157
+ git push --force
158
+ }
159
+
160
+ main() {
161
+ parse_args "$@"
162
+ enable_expanded_output
163
+ parse_github_context
164
+
165
+ # If the request for </repos/{owner}/{repo}/collaborators/{sender_login}>
166
+ # fails (404 not found), `gh` should return 1 and thus fail the entire
167
+ # script. For more information, see:
168
+ # https://docs.github.com/en/rest/reference/repos#check-if-a-user-is-a-repository-collaborator
169
+ if gh api -X GET "$collaborator_url" > /dev/null; then
170
+ amend
171
+ else
172
+ echo "'$sender_login' does not have access to the repository <$repo_url>."
173
+ fi
174
+ }
175
+
176
+ main "$@"
@@ -26,14 +26,32 @@ parse_args() {
26
26
  verbose=true
27
27
  shift
28
28
  elif [[ $1 = "-g" || $1 = "--gem" ]]; then
29
- gem=$2
30
- shift 2
29
+ gem=${2// }
30
+
31
+ if [[ "$gem" = "--"* ]]; then
32
+ gem=""
33
+ shift 1
34
+ else
35
+ shift 2
36
+ fi
31
37
  elif [[ $1 = "-t" || $1 = "--token" ]]; then
32
- token=$2
33
- shift 2
38
+ token=${2// }
39
+
40
+ if [[ "$token" = "--"* ]]; then
41
+ token=""
42
+ shift 1
43
+ else
44
+ shift 2
45
+ fi
34
46
  elif [[ $1 = "-o" || $1 = "--owner" ]]; then
35
- owner=$2
36
- shift 2
47
+ owner=${2// }
48
+
49
+ if [[ "$owner" = "--"* ]]; then
50
+ owner=""
51
+ shift 1
52
+ else
53
+ shift 2
54
+ fi
37
55
  else
38
56
  break
39
57
  fi
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env bash
2
+ # shellcheck disable=3000-SC4000
3
+
2
4
  set -o errexit # Abort if any command fails
3
5
  me=$(basename "$0")
4
6
 
5
7
  help_message="\
6
8
  Usage:
7
- $me --workdir <workdir> [--gemdir <gemdir> | --version <version> --token <token>] [--verbose]
8
- $me --help
9
+ ${me} --workdir <workdir> [--gemdir <gemdir> | --version <version> --token <token>] [--verbose]
10
+ ${me} --help
9
11
  Arguments:
10
12
  -w, --workdir <workdir> The path to the working directory.
11
13
  -g, --gemdir <gemdir> The path to directory of the Gem file to test.
@@ -18,113 +20,141 @@ Arguments:
18
20
  parse_args() {
19
21
  while : ; do
20
22
  if [[ $1 = "-h" || $1 = "--help" ]]; then
21
- echo "$help_message"
23
+ echo "${help_message}"
22
24
  return 0
23
25
  elif [[ $1 = "-v" || $1 = "--verbose" ]]; then
24
26
  verbose=true
25
27
  shift
26
28
  elif [[ $1 = "-g" || $1 = "--gemdir" ]]; then
27
- gemdir=$2
28
- shift 2
29
+ gemdir=${2// }
30
+
31
+ if [[ "${gemdir}" = "--"* ]]; then
32
+ gemdir=""
33
+ shift 1
34
+ else
35
+ shift 2
36
+ fi
29
37
  elif [[ $1 = "-v" || $1 = "--version" ]]; then
30
- version=$2
31
- shift 2
38
+ version=${2// }
39
+
40
+ if [[ "${version}" = "--"* ]]; then
41
+ version=""
42
+ shift 1
43
+ else
44
+ shift 2
45
+ fi
32
46
  elif [[ $1 = "-t" || $1 = "--token" ]]; then
33
- token=$2
34
- shift 2
47
+ token=${2// }
48
+
49
+ if [[ "${token}" = "--"* ]]; then
50
+ token=""
51
+ shift 1
52
+ else
53
+ shift 2
54
+ fi
35
55
  elif [[ $1 = "-w" || $1 = "--workdir" ]]; then
36
- workdir=$2
37
- shift 2
56
+ workdir=${2// }
57
+
58
+ if [[ "${workdir}" = "--"* ]]; then
59
+ workdir=""
60
+ shift 1
61
+ else
62
+ shift 2
63
+ fi
38
64
  else
39
65
  break
40
66
  fi
41
67
  done
42
68
 
43
- if [[ -z "$workdir" ]]; then
69
+ if [[ -z "${workdir}" ]]; then
44
70
  echo "Missing required argument: --workdir <workdir>."
45
- echo "$help_message"
71
+ echo "${help_message}"
46
72
  return 1
47
73
  fi
48
74
 
49
- if [[ (-z "$gemdir" && -z "$token") || (-n "$gemdir" && -n "$token") ]]; then
75
+ if [[ (-z "${gemdir}" && -z "${token}") || (-n "${gemdir}" && -n "${token}") ]]; then
50
76
  echo "Missing or invalid required arguments: --gemdir <gem-path> or --token <token>."
51
77
  echo "Either [--gemdir] or [--token] needs to be provided, but not both."
52
- echo "$help_message"
78
+ echo "${help_message}"
53
79
  return 1
54
80
  fi
55
81
 
56
- if [[ (-n "$version" && -z "$token") || (-z "$version" && -n "$token") ]]; then
82
+ if [[ (-n "${version}" && -z "${token}") || (-z "${version}" && -n "${token}") ]]; then
57
83
  echo "Missing or invalid required arguments: --version <gem-path> and --token <token>."
58
84
  echo "When either argument is present, both must be."
59
- echo "$help_message"
85
+ echo "${help_message}"
60
86
  return 1
61
87
  fi
62
88
  }
63
89
 
64
90
  # Echo expanded commands as they are executed (for debugging)
65
91
  enable_expanded_output() {
66
- if [ $verbose ]; then
92
+ if [ "${verbose}" = true ]; then
67
93
  set -o xtrace
68
94
  set +o verbose
95
+ export VERBOSE=true
69
96
  fi
70
97
  }
71
98
 
72
99
  test_gem() {
73
- cd "$workdir"
100
+ local jekyll_build_args=()
101
+
102
+ cd "${workdir}"
74
103
 
75
104
  gem install bundler
76
105
 
77
- if [[ -n "$token" ]]; then
106
+ if [[ -n "${token}" ]]; then
78
107
  # A non-empty $token means we should install the Gem from GPR
79
108
  repository="https://rubygems.pkg.github.com/swedbankpay"
80
- bundle config "$repository" "SwedbankPay:$token"
81
- printf "source '%s' do\n\tgem 'kramdown-plantuml', '%s'\nend" "$repository" "$version" >> Gemfile
109
+ bundle config "${repository}" "SwedbankPay:${token}"
110
+ printf "source '%s' do\n\tgem 'kramdown-plantuml', '%s'\nend" "${repository}" "${version}" >> Gemfile
82
111
  else
83
- echo "gem 'kramdown-plantuml', path: '$gemdir'" >> Gemfile
112
+ echo "gem 'kramdown-plantuml', path: '${gemdir}'" >> Gemfile
84
113
  fi
85
114
 
86
- if [[ $verbose ]]; then
115
+ if [[ "${verbose}" = true ]]; then
87
116
  cat Gemfile
117
+ jekyll_build_args+=(--verbose)
88
118
  fi
89
119
 
90
120
  bundle install
91
- bundle exec jekyll build
121
+ bundle exec jekyll build "${jekyll_build_args[@]}"
92
122
 
93
- file="$workdir/_site/index.html"
123
+ file="${workdir}/_site/index.html"
94
124
 
95
- file_contains "$file" "class=\"plantuml\""
96
- file_contains "$file" "<svg"
97
- file_contains "$file" "<ellipse"
98
- file_contains "$file" "<polygon"
99
- file_contains "$file" "<path"
125
+ file_contains "${file}" "class=\"plantuml theme-spacelab\""
126
+ file_contains "${file}" "<svg"
127
+ file_contains "${file}" "<ellipse"
128
+ file_contains "${file}" "<polygon"
129
+ file_contains "${file}" "<path"
100
130
  }
101
131
 
102
132
  file_contains() {
103
133
  file=$1
104
134
  contents=$2
105
135
 
106
- if [[ -z "$file" ]]; then
136
+ if [[ -z "${file}" ]]; then
107
137
  echo "file_contains missing required argument <file>."
108
138
  return 1
109
139
  fi
110
140
 
111
- if [[ -z "$contents" ]]; then
141
+ if [[ -z "${contents}" ]]; then
112
142
  echo "file_contains missing required argument <contents>."
113
143
  return 1
114
144
  fi
115
145
 
116
- if [[ ! -f "$file" ]]; then
117
- echo "file_contains <file> not found: '$file'."
146
+ if [[ ! -f "${file}" ]]; then
147
+ echo "file_contains <file> not found: '${file}'."
118
148
  return 1
119
149
  fi
120
150
 
121
- if grep --quiet --fixed-strings "$contents" "$file"; then
122
- echo "Success! '$contents' found in '$file'."
151
+ if grep --quiet --fixed-strings "${contents}" "${file}"; then
152
+ echo "Success! '${contents}' found in '${file}'."
123
153
  else
124
- echo "Failed! '$contents' not found in '$file'."
154
+ echo "Failed! '${contents}' not found in '${file}'."
125
155
 
126
- if [[ $verbose ]]; then
127
- cat "$file"
156
+ if [ "${verbose}" = true ]; then
157
+ cat "${file}"
128
158
  fi
129
159
 
130
160
  return 1