Skip to content

Commit ec9f0a0

Browse files
committed
Initial commit
0 parents  commit ec9f0a0

39 files changed

Lines changed: 5011 additions & 0 deletions

.dockerignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.git
2+
.github
3+
docs/
4+
tests/
5+
examples/
6+
*.md
7+
*.sh
8+
.dockerignore

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
docs/** linguist-documentation=true
2+
examples/** linguist-documentation=true

.github/FUNDING.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# These are supported funding model platforms
2+
3+
# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
# patreon: # Replace with a single Patreon username
5+
# open_collective: # Replace with a single Open Collective username
6+
# ko_fi: # Replace with a single Ko-fi username
7+
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
# liberapay: # Replace with a single Liberapay username
10+
# issuehunt: # Replace with a single IssueHunt username
11+
# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
# polar: # Replace with a single Polar username
13+
# buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
# thanks_dev: # Replace with a single thanks.dev username
15+
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
16+
17+
custom: ['https://iproyal.com/?r=848799']
18+
19+
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: Bug report
3+
about: Your detailed bug reports are pivotal in elevating this project's quality.
4+
Your expertise in identifying issues is deeply valued and appreciated.
5+
title: "[ISSUE] Problem Encountered"
6+
labels: bug
7+
assignees: franckferman
8+
9+
---
10+
11+
## Problem Summary
12+
_Provide a clear and concise summary of the encountered issue._
13+
14+
## Steps to Reproduce
15+
Provide a step-by-step description on how to reproduce the anomaly:
16+
17+
1. Command initiated: `...`
18+
2. During the process: `....`
19+
3. Observed issue: `....`
20+
4. Output/response anomaly: `...`
21+
22+
## Expected Outcome
23+
_Describe the anticipated result after executing the provided steps._
24+
25+
## Visual Evidence
26+
If possible, attach screenshots to support your description.
27+
28+
## Technical Details
29+
30+
### Operating System
31+
32+
- **Linux:** [e.g. Linux root 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux]
33+
*Retrieval:* `uname -a`
34+
35+
- **Windows:** [e.g. Microsoft Windows 10 Pro DevBox 10.0.15063 Multiprocessor Free 64-bit]
36+
*Retrieval:*
37+
```powershell
38+
$Properties = 'Caption', 'CSName', 'Version', 'BuildType', 'OSArchitecture'
39+
Get-CimInstance Win32_OperatingSystem | Select-Object $Properties | Format-Table -AutoSize
40+
```
41+
42+
### Software Versions
43+
44+
- **Python**: [e.g. Python 3.11.4]
45+
*Retrieval:* `python3 -V`
46+
47+
- **Exiftool**: [e.g. 12.56]
48+
*Retrieval:* `exiftool -ver`
49+
50+
- **MetaDetective**: [e.g. 1.0.8]
51+
52+
### Docker (if used)
53+
54+
- **Image Version**: [e.g. "1.0.1"]
55+
56+
## Additional Information
57+
58+
Provide any other pertinent details or context regarding the issue.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Feature request
3+
about: Clearly outline the primary goal of this feature request.
4+
title: "[FEATURE]"
5+
labels: enhancement
6+
assignees: franckferman
7+
8+
---
9+
10+
**Problem Nexus:**
11+
_Can you link this feature request to an existing problem or limitation?_
12+
Provide a precise and thorough depiction of the issue. For instance, "The current workflow requires manual data entry, leading to inefficiencies and potential for error."
13+
14+
**Envisioned Solution:**
15+
_Detail the desired feature or enhancement._
16+
Expound upon how you imagine this feature will function, how it will address the problem, and the advantages it will introduce.
17+
18+
**Alternative Strategies Assessed:**
19+
_Have you thought of other potential solutions?_
20+
List and briefly explain other solutions or functionalities you've considered. Highlight why they might be less optimal than your proposed solution.
21+
22+
**Implications and Integration:**
23+
_How will this feature fit into the current system?_
24+
Discuss any potential interactions with existing features, how it aligns with the project's goals, or any other relevant integrations.
25+
26+
**Visual Demonstrations (if applicable):**
27+
_Do you have visual aids or mock-ups?_
28+
Embed any diagrams, wireframes, or screenshots that can provide clarity on the desired feature's function and integration.

.github/workflows/bandit.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: bandit
2+
3+
on:
4+
push:
5+
branches: ["stable"]
6+
paths:
7+
- 'src/MetaDetective/MetaDetective.py'
8+
pull_request:
9+
branches: ["stable"]
10+
paths:
11+
- 'src/MetaDetective/MetaDetective.py'
12+
13+
jobs:
14+
security-check:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: actions/setup-python@v5
20+
with:
21+
python-version: '3.11'
22+
23+
- name: Install Bandit
24+
run: pip install bandit
25+
26+
- name: Run Bandit
27+
run: bandit ./src/MetaDetective/MetaDetective.py -s B404,B607,B603,B310

.github/workflows/docker-image.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Docker
2+
3+
on:
4+
workflow_run:
5+
workflows: ["python-publish"]
6+
types: [completed]
7+
8+
jobs:
9+
build_and_push:
10+
runs-on: ubuntu-latest
11+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
ref: ${{ github.event.workflow_run.head_sha }}
17+
18+
- name: Extract version
19+
id: meta
20+
run: echo "version=${BRANCH#v}" >> "$GITHUB_OUTPUT"
21+
env:
22+
BRANCH: ${{ github.event.workflow_run.head_branch }}
23+
24+
- name: Login to Docker Hub
25+
uses: docker/login-action@v3
26+
with:
27+
username: ${{ secrets.DOCKER_USERNAME }}
28+
password: ${{ secrets.DOCKER_PASSWORD }}
29+
30+
- name: Set up Docker Buildx
31+
uses: docker/setup-buildx-action@v3
32+
33+
- name: Build and push
34+
uses: docker/build-push-action@v6
35+
with:
36+
context: .
37+
file: docker/Dockerfile
38+
push: true
39+
platforms: linux/amd64,linux/arm64
40+
build-args: VERSION=${{ steps.meta.outputs.version }}
41+
tags: |
42+
franckferman/metadetective:latest
43+
franckferman/metadetective:${{ steps.meta.outputs.version }}

.github/workflows/lint.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: lint
2+
3+
on:
4+
push:
5+
branches: ["stable"]
6+
paths:
7+
- 'tests/test_MetaDetective.py'
8+
- 'src/MetaDetective/MetaDetective.py'
9+
pull_request:
10+
branches: ["stable"]
11+
paths:
12+
- 'tests/test_MetaDetective.py'
13+
- 'src/MetaDetective/MetaDetective.py'
14+
15+
jobs:
16+
lint:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- uses: actions/setup-python@v5
22+
with:
23+
python-version: '3.11'
24+
25+
- name: Install flake8
26+
run: pip install flake8
27+
28+
- name: Check PEP8 compliance
29+
run: flake8 . --count --ignore=E501
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: python-publish
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: read
10+
id-token: write
11+
12+
jobs:
13+
deploy:
14+
runs-on: ubuntu-latest
15+
environment: pypi
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: actions/setup-python@v5
21+
with:
22+
python-version: '3.x'
23+
24+
- name: Install build
25+
run: pip install build
26+
27+
- name: Build package
28+
run: python -m build
29+
30+
- name: Publish to PyPI
31+
uses: pypa/gh-action-pypi-publish@release/v1
32+
with:
33+
password: ${{ secrets.PYPI_API_TOKEN }}

.github/workflows/release.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- uses: softprops/action-gh-release@v2
19+
with:
20+
generate_release_notes: true

0 commit comments

Comments
 (0)