Skip to content

Commit 6f4feee

Browse files
committed
feat: add GitHub repository configuration and development workflow setup
0 parents  commit 6f4feee

22 files changed

Lines changed: 1477 additions & 0 deletions

.editorconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[*.{kt,kts}]
2+
indent_size=4
3+
insert_final_newline = true
4+
ij_kotlin_imports_layout=*
5+
ktlint_code_style=intellij_idea
6+
ktlint_function_naming_ignore_when_annotated_with = Composable
7+
max_line_length = 120
8+
9+
# Do not apply the general rule to generated files
10+
[**/generated/**/*.{kt,kts}]
11+
indent_size = unset
12+
max_line_length = unset
13+
insert_final_newline = unset
14+
15+
[**/*{t,T}est/kotlin/**.kt]
16+
ktlint_standard_class-signature = disabled

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.java text eol=lf

.gitguardian.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
incident:
2+
ignore:
3+
- name: "Ignore example secrets"
4+
match: "app/settings.py"
5+
reason: "Example credentials that are not used in production."

.github/CONTRIBUTING.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# **Contributing**
2+
3+
When contributing to this repository, please first discuss the change you wish to make via issue,
4+
chat, or any other method with the owners of this repository before making a change.
5+
6+
## Git Flow
7+
8+
The project uses the Git Flow branching model. The main branches are `main` and `develop`. The `main` branch is the production-ready branch, and the `develop` branch is the integration branch.
9+
10+
The branches are used as follows:
11+
12+
* From Feature to Feature: squash and merge
13+
* From Feature to Develop: squash and merge
14+
* From Develop to Main: fast-forward merge
15+
* From Main to Develop: fast-forward merge
16+
* From Hotfix to Main: fast-forward merge
17+
18+
It's important to follow this flow to keep the project organized and to avoid conflicts.
19+
20+
Every time a feature is merged into the `main` branch, a new release should be created with the version number following the [Semantic Versioning](https://semver.org/) guidelines.
21+
22+
Also, the project uses pre-commit hooks to ensure the code quality. You should install them with `pre-commit install`.
23+
24+
## Commits
25+
26+
The project uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. This is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history. This convention dovetails with [SemVer](https://semver.org/), by describing the features, fixes, and breaking changes made in commit messages.
27+
28+
Each commit message should be conceptually unique and should be able to be understood by itself. It should only contain changes related to the name of the commit. If you need to make a commit with multiple changes that are independent (conceptually), you should split it into multiple commits.
29+
30+
## Pull Request Process
31+
32+
### Features
33+
34+
1. Create your Feature Branch (`git checkout feature/{issue-number}-AmazingFeature`)
35+
2. Check that you have installed pre-commit hooks with `pre-commit install`.
36+
3. Check that your branch is up to date with `git pull` and merge if it's necessary with `git merge origin develop`.
37+
4. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
38+
5. Push to the Branch (`git push`)
39+
6. Open a Pull Request to the `develop` branch or to the main epic branch if there's one defined.
40+
41+
### Bug Fixes
42+
43+
Same as Features, but the branch name should be `bugfix/{issue-number}-FixingSomething`.
44+
45+
### Hotfixes
46+
47+
Same as Features, but the branch name should be `hotfix/{issue-number}-FixingSomething`. And the Pull Request should be opened to the `main` branch.
48+
49+
## Issue Report Process
50+
51+
1. Go to the project's issues.
52+
2. Select the template that better fits your issue.
53+
3. Read the instructions carefully and write within the template guidelines.
54+
4. Submit it and wait for support.
55+
56+
## GitHub Projects
57+
58+
You can use GitHub Projects to manage the project's tasks. It's a good way to keep track of the issues and pull requests.

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
github: [Bit-Maximum]

.github/SECURITY.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# 🔒 Security Policy
2+
3+
## Supported Versions
4+
5+
| Version | Supported |
6+
|-----------|--------------------|
7+
| 1.x.x ||
8+
| <1.0.0 ||
9+
10+
---
11+
12+
## Reporting a Vulnerability
13+
14+
If you discover a security vulnerability, please **do not open a public issue**.
15+
Instead, report it via:
16+
17+
- Email: security@example.com
18+
- GitHub Security Advisory: https://github.com/OWNER/REPO/security/advisories/new
19+
20+
Include:
21+
- Description of the vulnerability
22+
- Steps to reproduce (or proof of concept)
23+
- Affected versions and environment details
24+
25+
We aim to respond within **48 hours** and provide a fix or mitigation within **14 days**.
26+
27+
---
28+
29+
## Handling Secrets
30+
31+
- **Never commit** `.env` or `.secrets` files with real credentials.
32+
- For example see `.env.example` and `.secrets.example` with placeholder values for environment variables.
33+
- In CI/CD (GitHub Actions), store secrets via **Settings → Secrets and variables**.
34+
- For local testing with **Act**, place credentials in `.secrets` (ignored by `.gitignore`).
35+
36+
Example `.env.example`:
37+
```env
38+
DATABASE_URL=postgresql://username:password@localhost:5432/dbname
39+
SECRET_KEY=changeme
40+
```
41+
42+
Example `.secrets.example`:
43+
```env
44+
DOCKERHUB_USERNAME=your-username
45+
DOCKERHUB_TOKEN=your-token
46+
```
47+
48+
---
49+
50+
### Security Best Practices
51+
- Keep dependencies updated (use Dependabot).
52+
- Scan code with security linters (Bandit, Ruff).
53+
- Use container vulnerability scanners (Trivy, Grype).
54+
- Avoid hardcoding API keys or passwords.
55+
56+
---

.github/SUPPORT.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# **Support**
2+
3+
## Obtain direct support from the project's owners
4+
5+
1. Open a new issue and select the issue with the template called "❓ Question or Support Request".
6+
2. Read the instructions carefully in that template and submit the issue asking for support
7+
or any question.
8+
9+
## Bug reports
10+
11+
See the [contributing guidelines](CONTRIBUTING.md) for sharing bug reports.

.github/config.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
2+
3+
# Comment to be posted to on first time issues
4+
newIssueWelcomeComment: >
5+
Thanks for opening your first issue! Be sure to follow the issue template and provide every bit of information to help the developers!
6+
7+
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
8+
9+
# Comment to be posted to on PRs from first time contributors in your repository
10+
newPRWelcomeComment: >
11+
Thanks for opening this pull request! Please check out our contributing guidelines and make sure to follow the pull request template.
12+
13+
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
14+
15+
# Comment to be posted to on pull requests merged by a first time user
16+
firstPRMergeComment: >
17+
Congrats on merging your first pull request! Keep making great things with us, thanks!!
18+
19+
todo:
20+
keyword: "@todo"

.github/dependabot.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
version: 2
2+
updates:
3+
# GitHub Actions
4+
- package-ecosystem: github-actions
5+
directory: /
6+
schedule:
7+
interval: weekly
8+
commit-message:
9+
prefix:
10+
labels:
11+
- dependencies
12+
13+
# Java Gradle
14+
- package-ecosystem: gradle
15+
directory: /
16+
schedule:
17+
interval: weekly
18+
commit-message:
19+
prefix:
20+
labels:
21+
- dependencies
22+
23+
# Docker
24+
- package-ecosystem: docker
25+
directory: /
26+
schedule:
27+
interval: weekly
28+
commit-message:
29+
prefix:
30+
labels:
31+
- dependencies
32+
33+
# Docker Compose
34+
- package-ecosystem: docker-compose
35+
directory: /
36+
schedule:
37+
interval: weekly
38+
commit-message:
39+
prefix:
40+
labels:
41+
- dependencies

.github/labeler.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
documentation:
2+
- all:
3+
- changed-files:
4+
- any-glob-to-any-file:
5+
- '**/*.md'
6+
- all-globs-to-all-files:
7+
- '!src/**'
8+
- '!.github/**'
9+
- '!scripts/**'
10+
- '!.gitignore'
11+
- '!.pre-commit-config.yaml'
12+
13+
ci/cd:
14+
- all:
15+
- changed-files:
16+
- any-glob-to-any-file:
17+
- ".github/**"
18+
- "scripts/**"
19+
- ".gitignore"
20+
- ".pre-commit-config.yaml"
21+
- ".gitlab-ci.yml"
22+
- "alembic.ini"
23+
- all-globs-to-all-files:
24+
- '!./**/*.md'
25+
- '!src/**'
26+
27+
backend:
28+
- all:
29+
- changed-files:
30+
- any-glob-to-any-file:
31+
- "src/**"
32+
33+
tests:
34+
- all:
35+
- changed-files:
36+
- any-glob-to-any-file:
37+
- "tests/**"
38+
39+
docker:
40+
- all:
41+
- changed-files:
42+
- any-glob-to-any-file:
43+
- "deploy/**"
44+
- "!deploy/kube/**"
45+
- "Dockerfile"
46+
- "docker-compose.yml"
47+
48+
kubernetes:
49+
- all:
50+
- changed-files:
51+
- any-glob-to-any-file:
52+
- "deploy/kube/**"
53+
54+
dependencies:
55+
- all:
56+
- changed-files:
57+
- any-glob-to-any-file:
58+
- ''
59+
authors:
60+
- "dependabot[bot]"

0 commit comments

Comments
 (0)