| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Block insecure options and protocols by default
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the URL is passed directly to git clone, and the remote-ext helper
will happily execute shell commands, so by default disallow URLs that
contain a "::" unless a new unsafe_protocols kwarg is passed.
(CVE-2022-24439)
Fixes #1515
|
| |
| |
| |
| | |
pycharm yells at me without this
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add `--` in some commands that receive user input
and if interpreted as options could lead to remote
code execution (RCE).
There may be more commands that could benefit from `--`
so the input is never interpreted as an option,
but most of those aren't dangerous.
Fixed commands:
- push
- pull
- fetch
- clone/clone_from and friends
- archive (not sure if this one can be exploited, but it doesn't hurt
adding `--` :))
For anyone using GitPython and exposing any of the GitPython methods to users,
make sure to always validate the input (like if starts with `--`).
And for anyone allowing users to pass arbitrary options, be aware
that some options may lead fo RCE, like `--exc`, `--upload-pack`,
`--receive-pack`, `--config` (https://github.com/gitpython-developers/GitPython/pull/1516).
Ref https://github.com/gitpython-developers/GitPython/issues/1517
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces a potential fix for #1490 and #1483, in which an
`invalid literal for int() with base 10: 'n'` exception was raised
within a diff operation. Within `_handle_diff_line()`, we split the
output of `git diff-tree` on colons (`:` characters), under the
assumption that there are no colons within the paths of the files being
diffed. On POSIX systems this is not a valid assumption. The fix is to
split on `\x00:`, since a null character always precedes the colons we
actually need to split on.
A test already existed for this case (`test_diff_file_with_colon()`),
but it was marked as skipped.
* Split on `\x00:` instead of `:` in `_handle_diff_line()`.
* Unskip `test_diff_file_with_colon()`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `git blame` CLI offers a repeated `-C` option that can be used to detect
lines that move within/between files. While a slower operation, it yields more
accurate authorship reports.
https://git-scm.com/docs/git-blame#Documentation/git-blame.txt--Cltnumgt
While GitPython does enable passing custom kwargs to the command line `git`
invocation, the fact that kwargs is a dictionary (i.e. no duplicate keys) means
that there was no way to request the `-C` option in `git blame` more than once.
This commit adds an optional `rev_opts` parameter to the `blame` method which
accepts a list of strings to propagate to the CLI invocation of `git blame`. By
using a `List[str]` for `rev_opts`, users of GitPython can pass now the `-C`
option multiple times to get more detailed authorship reports from `git blame`.
|
| |
|
| |
|
|
|
|
| |
_from_string classmethod.
|
|
|
|
| |
message for designated co-authors, include a simple test.
|
|
|
|
|
|
|
|
| |
docs: add typerror exception to active_branch method
fix: sphinx syntax
add author
|
|
|
|
| |
Signed-off-by: Predeactor <predeactor0@gmail.com>
|
|
|
|
| |
Signed-off-by: Predeactor <predeactor0@gmail.com>
|
| |
|
| |
|
|\
| |
| | |
Fix blob filter types
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Remove usage of `PosixPath.is_relative_to` because it was added in
Python 3.9 and earlier versions of Python are supported by `GitPython`.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Fix the types and type annotations of some of the blob filter code.
|
|/
|
|
|
|
| |
When passing the "message" kwarg, this would add a -m command-line flag
without removing --message, and the message would be duplicated. Avoid
that by deleting "message" from the command line.
|
| |
|
| |
|
| |
|
|
|
| |
People can change the `/cygdrive` prefix for mounting Windows drives; `/` and `/mnt` are both popular. `/proc/cygdrive` is always going to have the drive letters under it.
|
| |
|
|
|
|
| |
Close #1382
|
| |
|
| |
|
|
|
|
| |
This reverts commit a7c5d887e943aa51f2270e517954c024a8c01500.
|
|
|
|
| |
`flake8` seems to dislike the formatting of black.
|
|
|
|
|
| |
That way people who use it won't be deterred, while it unifies style
everywhere.
|
|
|
| |
Found via `codespell -q 3 -S ./git/ext/gitdb,./test/fixtures/reflog_master,./test/fixtures/diff_mode_only,./test/fixtures/reflog_HEAD`
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This commit adds the `strip_newline` flag to the `Git.execute` method.
When this flag is set to `True`, it will trim the trailing `\n`. The
default value is `True` for backward compatibility. Setting it to
`False` is helpful for, e.g., the `git show` output, especially with the binary
file, as the missing `\n` may invalidate the file.
|
|
|
|
| |
This matches the signature from `Head.create`.
|