mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-28 03:26:45 +00:00
fix(backend): determine active branch on startup (#9056)
* fix(backend): Determine active branch on startup * add more warnings and document them * extend expected errors * fix typos
This commit is contained in:
parent
4df6e980ba
commit
047431d67f
@ -25,6 +25,24 @@ You probably have a reference to invoke or a directory with invoke in your PATH
|
|||||||
### INVE-W (InvenTree Warning)
|
### INVE-W (InvenTree Warning)
|
||||||
Warnings - These are non-critical errors which should be addressed when possible.
|
Warnings - These are non-critical errors which should be addressed when possible.
|
||||||
|
|
||||||
|
#### INVE-W1
|
||||||
|
**Current branch could not be detected - Backend**
|
||||||
|
|
||||||
|
During startup of the backend InvenTree tries to detect branch, commit hash and commit date to surface on various points in the UI, through tags and in the API.
|
||||||
|
This information is not needed for operation but very helpful for debugging and support. These issues might be caused by running a deployment version that delivers without git information, not having git installed or not having dulwich installed.
|
||||||
|
You can ignore this warning if you are not interested in the git information.
|
||||||
|
|
||||||
|
#### INVE-W2
|
||||||
|
**Dulwich module not found - Backend**
|
||||||
|
|
||||||
|
See [INVE-W1](#inve-w1)
|
||||||
|
|
||||||
|
#### INVE-W3
|
||||||
|
**Could not detect git information - Backend**
|
||||||
|
|
||||||
|
See [INVE-W1](#inve-w1)
|
||||||
|
|
||||||
|
|
||||||
### INVE-I (InvenTree Information)
|
### INVE-I (InvenTree Information)
|
||||||
Information — These are not errors but information messages. They might point out potential issues or just provide information.
|
Information — These are not errors but information messages. They might point out potential issues or just provide information.
|
||||||
|
|
||||||
|
@ -26,19 +26,28 @@ logger = logging.getLogger('inventree')
|
|||||||
|
|
||||||
# Discover git
|
# Discover git
|
||||||
try:
|
try:
|
||||||
|
from dulwich.porcelain import active_branch
|
||||||
from dulwich.repo import Repo
|
from dulwich.repo import Repo
|
||||||
|
|
||||||
main_repo = Repo(pathlib.Path(__file__).parent.parent.parent.parent.parent)
|
main_repo = Repo(pathlib.Path(__file__).parent.parent.parent.parent.parent)
|
||||||
main_commit = main_repo[main_repo.head()]
|
main_commit = main_repo[main_repo.head()]
|
||||||
|
try:
|
||||||
|
main_branch = active_branch(main_repo)
|
||||||
|
except (KeyError, IndexError):
|
||||||
|
logger.warning('INVE-W1: Current branch could not be detected.')
|
||||||
|
main_branch = None
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
'Warning: Dulwich module not found, git information will not be available.'
|
'INVE-W2: Dulwich module not found, git information will not be available.'
|
||||||
)
|
)
|
||||||
main_repo = None
|
main_repo = None
|
||||||
main_commit = None
|
main_commit = None
|
||||||
except Exception:
|
main_branch = None
|
||||||
|
except Exception as exc:
|
||||||
|
logger.warning('INVE-W3: Could not detect git information.', exc_info=exc)
|
||||||
main_repo = None
|
main_repo = None
|
||||||
main_commit = None
|
main_commit = None
|
||||||
|
main_branch = None
|
||||||
|
|
||||||
|
|
||||||
def checkMinPythonVersion():
|
def checkMinPythonVersion():
|
||||||
@ -270,14 +279,9 @@ def inventreeBranch():
|
|||||||
if branch:
|
if branch:
|
||||||
return branch
|
return branch
|
||||||
|
|
||||||
if main_commit is None:
|
if main_branch is None:
|
||||||
return None
|
return None
|
||||||
|
return main_branch.decode('utf-8')
|
||||||
try:
|
|
||||||
branch = main_repo.refs.follow(b'HEAD')[0][1].decode()
|
|
||||||
return branch.removeprefix('refs/heads/')
|
|
||||||
except IndexError:
|
|
||||||
return None # pragma: no cover
|
|
||||||
|
|
||||||
|
|
||||||
def inventreeTarget():
|
def inventreeTarget():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user