Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
7aa2173
Bump urllib3 from 1.24.2 to 1.26.5
dependabot[bot] Jun 1, 2021
18ef79c
Merge pull request #11 from datreeio/dependabot/pip/urllib3-1.26.5
Jun 16, 2021
8855d1b
fix requirements
DanielWeeber Feb 7, 2022
bac33b9
Merge pull request #12 from DanielWeeber/master
Feb 8, 2022
2e22d13
add S3_DIR and S3_ENDPOINT_URL
Dec 2, 2022
9227339
replace format
Dec 5, 2022
e7cd54f
Merge pull request #14 from nuBacuk/master
Dec 5, 2022
7f2be47
Change the boto module to boto3 and adapt the code #17
mathieumaf Sep 19, 2024
614f24c
Fixed the requirements.txt file #17
mathieumaf Sep 19, 2024
6321dcf
Merge pull request #19 from MATMAF/master
eyarz Sep 22, 2024
6eadcfe
Adapt the wizard.py file to Python 3 #20
mathieumaf Sep 24, 2024
4f03878
Adapt the wizard.py file to Python 3 #20
eyarz Sep 25, 2024
a1e4a07
File __init__.py is empty and never used
mathieumaf Sep 25, 2024
979db83
Changed .gitignore to add __pycache__ directory
mathieumaf Sep 25, 2024
890e380
Changed file README.md to only support python3
mathieumaf Sep 25, 2024
337c77e
Changed README.md to adapt config.json to config.yaml
mathieumaf Sep 25, 2024
c1d76bc
Changed boto3 version in requirements.txt
mathieumaf Sep 25, 2024
ba67450
Merge pull request #22 from MATMAF/master
eyarz Sep 26, 2024
087e369
feat: add GCP and Azure storage support
Trozz Jun 24, 2025
0bb0ca8
docs: update README with GCP and Azure storage instructions
Trozz Jun 24, 2025
b1d2385
feat: add automated scheduling support for backup tasks
Trozz Jun 24, 2025
6a206bf
feat: make cloud storage configuration sections optional
Trozz Jun 24, 2025
351d0df
fix: allow separate cron schedules for Jira and Confluence backups
Trozz Jun 24, 2025
ab6657d
docs: modernize README with comprehensive documentation and features
Trozz Jun 24, 2025
4e59c20
docs: fix README to reflect actual implemented features
Trozz Jun 24, 2025
6a5f5f3
Merge pull request #1 from Trozz/add_scheduler_feature
Trozz Jun 25, 2025
d9ba113
Merge pull request #23 from Trozz/main
eyarz Jun 26, 2025
7f254f2
Create Dockerfile for the tool to run inside K8s using CronJob
blufor Jun 26, 2025
be06e53
Merge pull request #24 from blufor/master
eyarz Jun 27, 2025
d7489fa
Make config file path configurable using argument
blufor Nov 3, 2025
058ad30
Merge pull request #28 from madfingergames/master
eyarz Nov 4, 2025
6eda34a
Remove manual config to get rid of "Memory Error" on large backups
Dec 20, 2025
f3e656f
Atlassian only allows Jira backups every few days, fallback to existi…
Dec 20, 2025
8be4b3f
If there's a Confluence backup already, use it
Dec 21, 2025
4132868
Merge pull request #34 from therealprof/feature/fallback_to_existing_…
eyarz Dec 21, 2025
a7c871c
Merge pull request #33 from therealprof/feature/fallback_to_existing_…
eyarz Dec 21, 2025
8990488
Merge pull request #32 from therealprof/feature/fix_s3_memory_error
eyarz Dec 23, 2025
c63b61c
Added CUSTOM_FILENAME config option for custom backup filenames (#35)
righter83 Jan 4, 2026
65470c5
Extended Download Features (#37)
righter83 Jan 13, 2026
92d92c4
Make this a pip-installable package. Build wheels and docker images i…
rudolfbyker May 13, 2026
5c1c5e2
Update README to match the latest changes from #41 (#42)
rudolfbyker May 28, 2026
169a21f
Standardize code style using Black (#43)
rudolfbyker May 28, 2026
3065a17
Introduce type checking using `mypy`. (#44)
rudolfbyker Jun 16, 2026
8bc9783
Fix config path handling. Use absolute paths for scheduled tasks. (#46)
rudolfbyker Jun 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/workflows/black.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Lint with Black

on: [push, pull_request]

jobs:
black:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: psf/black@stable
33 changes: 33 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build, upload, and publish Docker images

on:
release:
types:
- created
pull_request:
branches:
- master

jobs:
docker:
timeout-minutes: 20

runs-on: ubuntu-latest

permissions:
# See https://docs.pypi.org/trusted-publishers/using-a-publisher/
id-token: write
contents: write

steps:
- uses: actions/checkout@v6

- name: Build image
run: docker build -t jira_backup .

- name: Test image
run: docker run --rm jira_backup --help

# TODO: Upload Docker image to the release.

# TODO: Add tags and publish Docker image to the public Docker registry.
26 changes: 26 additions & 0 deletions .github/workflows/mypy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Lint with MyPy

on: [push, pull_request]

jobs:
mypy:
timeout-minutes: 10

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r mypy-requirements.txt .[all]

- name: Run MyPy
run: |
mypy .
51 changes: 51 additions & 0 deletions .github/workflows/python-wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build, upload, and publish Python wheels

on:
release:
types:
- created
pull_request:
branches:
- master

jobs:
wheel:
timeout-minutes: 20

runs-on: ubuntu-latest

permissions:
# See https://docs.pypi.org/trusted-publishers/using-a-publisher/
id-token: write
contents: write

steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine build

- name: Build wheel
run: python -m build

- name: Upload to the release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: dist/*.whl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish to the public PyPI
if: github.event_name == 'release'
env:
TWINE_USERNAME: ${{ secrets.PUBLIC_PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PUBLIC_PYPI_PASSWORD }}
run: twine upload dist/*.whl
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,19 @@ var/

_config.json
venv/
.venv/
.vscode/
node_modules/
package-lock.json
test.py
backups/*
!backups/.gitkeep
wizard.pyc
*.pyc
__pycache__/
.pytest_cache/
.mypy_cache/
.coverage
coverage.xml

# IDEs
.idea/
8 changes: 8 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.14-alpine
COPY ./ /backup
RUN adduser -D backup
RUN chown -R backup:backup /backup
WORKDIR /backup
RUN pip install --no-cache-dir ".[all]"
USER backup
ENTRYPOINT ["python", "-m", "jira_backup"]
Loading