You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pathspec is not respected because of bash expansion #239
Describe the bug
I my workflow action,
I am converting jupyter notebook to markdown.
I want to commit all "md" files changed by previous steps in the repository
If I use file_pattern: "*.md", according to pathspec, it should commit every ".md" file it the repository but it does not work.
This is due to the fact that I have a Threshold.md file at the root of my repository, so *.md is expanded to Threshold.md before being send to git command.
I can reproduce it locally, if I use git status *.md, I only get status for Threshold.md,
while if I use git status "*.md", I get status for all ".md" file in the repository.
I tried to use filepattern: "'*.md'" but it did not work. I think quotes are lost during evaluation to pass it in ENV variable ($INPUT_FILE_PATTERN)
To Reproduce
Create git repo with a structure:
a.md
subdir/b.md
Add a step that modifies those files by eg. appending some value.
Use the action to commit all md file with file_pattern: "*.md".
See that file are not commited.
Expected behavior
I think the script should split $INPUT_FILE_PATTERN on spaces to get the different patterns in an array variable, then use quoting of arguments.
read -a INPUT_FILES <<<"$INPUT_FILE_PATTERN"
... (later on) ...
git status "${INPUT_FILES[@]}"
...
git add "${INPUT_FILES[@]}"
Thanks for your feedback and idea for a solution to this problem.
You're correct that quotes are lost in translation between the YAML, the Bash script and Git.
There's a previous discussion about this here: #196 (review)
In February I've opened a PR which tries to fix this; but I'm not sure why I haven't merged or worked more on this.
Will take a closer look on this in the upcoming days. It's time we close this problem for good.
@alexgarel Oh man. Thank you so much! ♥️
My bash knowledge is still so limited … even after all these years.
Will review your comments in detail when I get the time.
@alexgarel It's on my todo list. Currently a lot to do at my day-job and didn't had the energy to invest the time into this issue.
I plan to tackle this tonight.
What I can alrady tell is that <<< didn't seem to work. More later today.
I recently had this problem. Turns out the file I was trying to auto-commit was in my .gitignore. Perhaps the action could inform users if that's the cause of the file being skipped?
Activity
stefanzweifel commentedon Sep 1, 2022
Thanks for your feedback and idea for a solution to this problem.
You're correct that quotes are lost in translation between the YAML, the Bash script and Git.
There's a previous discussion about this here: #196 (review)
In February I've opened a PR which tries to fix this; but I'm not sure why I haven't merged or worked more on this.
Will take a closer look on this in the upcoming days. It's time we close this problem for good.
alexgarel commentedon Sep 1, 2022
Ok, good to know, I made suggestions on your PR :-)
stefanzweifel commentedon Sep 1, 2022
@alexgarel Oh man. Thank you so much!♥️
My bash knowledge is still so limited … even after all these years.
Will review your comments in detail when I get the time.
alexgarel commentedon Sep 14, 2022
Gentle ping
stefanzweifel commentedon Sep 14, 2022
@alexgarel It's on my todo list. Currently a lot to do at my day-job and didn't had the energy to invest the time into this issue.
I plan to tackle this tonight.
What I can alrady tell is that<<<didn't seem to work. More later today.stefanzweifel commentedon Sep 14, 2022
@alexgarel #205 has been updated with your suggestion. Could you give this version a try by updating your workflow to use:
If this change resolved your issues, I'm going to merge the PR and tag a new version.
stefanzweifel commentedon Sep 17, 2022
I've tested the changes made in #205 extensivly in a test project of mine.
file_patternshould now work more reliably.The original issue you described here was primarily solved by adding
disable_globbing: trueto the Workflow. I've updated the README with an example, when someone might run into this:https://github.com/stefanzweifel/git-auto-commit-action#custom-file_pattern-changed-files-but-seeing-working-tree-clean-nothing-to-commit-in-the-logs
(In a future v5 I would like to permanently fix this issue without resorting to a
disable_globbing-option.)Thanks for helping solving this issue!
build: fix git-auto-commit
build: fix git-auto-commit
build: fix git-auto-commit
nwithan8 commentedon Aug 19, 2024
I recently had this problem. Turns out the file I was trying to auto-commit was in my .gitignore. Perhaps the action could inform users if that's the cause of the file being skipped?