mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
workflows/check-cherry-picks: truncate long diffs after 10k characters
GitHub comments have a length limit, so we can't just dump everything. The 10k limit is arbitrary, but the assumption is that reviewing the range-diff is not the sensible thing to do once it becomes a certain size - reviewing the regular diff and treating the commit as "new" is easier to do in that case. Thus, truncating should work out fine, especially when the full range-diff is still available in the runner log. This could still end up in with an error, if a PR has multiple commits, which all hit the limit. Let's get there first, before we try to fix that hypothetical case, too.
This commit is contained in:
parent
515b174c42
commit
856792f93e
2 changed files with 16 additions and 2 deletions
|
@ -112,7 +112,18 @@ while read -r new_commit_sha ; do
|
|||
echo '> ```diff' >> $markdown_file
|
||||
# The output of `git range-diff` is indented with 4 spaces, which we need to match with the
|
||||
# code blocks indent to get proper syntax highlighting on GitHub.
|
||||
$range_diff_common | tail -n +2 | sed -Ee 's/^ {4}/> /g' >> $markdown_file
|
||||
diff="$($range_diff_common | tail -n +2 | sed -Ee 's/^ {4}/> /g')"
|
||||
# Also limit the output to 10k bytes (and remove the last, potentially incomplete line), because
|
||||
# GitHub comments are limited in length. The value of 10k is arbitrary with the assumption, that
|
||||
# after the range-diff becomes a certain size, a reviewer is better off reviewing the regular diff
|
||||
# in GitHub's UI anyway, thus treating the commit as "new" and not cherry-picked.
|
||||
# Note: This could still lead to a too lengthy comment with multiple commits touching the limit. We
|
||||
# consider this too unlikely to happen, to deal with explicitly.
|
||||
max_length=10000
|
||||
if [ "${#diff}" -gt $max_length ]; then
|
||||
printf -v diff "%s\n\n[...truncated...]" "$(echo "$diff" | head -c $max_length | head -n-1)"
|
||||
fi
|
||||
echo "$diff" >> $markdown_file
|
||||
echo '> ```' >> $markdown_file
|
||||
echo "> </details>" >> $markdown_file
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue