Terima kasih atas minat Anda untuk berkontribusi! Dokumen ini berisi panduan untuk berkontribusi ke project ini.
# Fork repository di GitHub
# Kemudian clone fork Anda
git clone https://github.com/YOUR_USERNAME/monitoringnetwork.git
cd monitoringnetwork# Install dependencies
pip install paramiko openpyxl
# Copy template credentials (JANGAN commit yang asli!)
cp _telkom_access.xml.example _telkom_access.xml
cp .env.example .env
# Edit dengan kredensial testing Andagit checkout -b feature/nama-fitur-anda
# atau
git checkout -b fix/nama-bug-yang-diperbaiki- Tulis kode yang bersih dan terdokumentasi
- Ikuti style guide Python (PEP 8)
- Tambahkan docstring untuk fungsi baru
- Test perubahan Anda secara menyeluruh
# PENTING: Pastikan tidak ada kredensial!
git status
git diff
# Commit dengan pesan yang jelas
git add .
git commit -m "feat: tambah fitur X untuk meningkatkan Y"git push origin feature/nama-fitur-andaKemudian buat Pull Request di GitHub dengan deskripsi yang jelas.
- Ikuti PEP 8
- Gunakan 4 spasi untuk indentasi
- Maksimum 100 karakter per baris
- Gunakan nama variabel yang deskriptif
def function_name(param1, param2):
"""
Brief description of function.
Args:
param1 (type): Description of param1
param2 (type): Description of param2
Returns:
type: Description of return value
Raises:
ErrorType: Description of when error occurs
"""
passGunakan conventional commits:
feat:untuk fitur barufix:untuk bug fixesdocs:untuk perubahan dokumentasirefactor:untuk refactoring codetest:untuk menambah testschore:untuk maintenance tasks
Contoh:
feat: add support for custom timeout configuration
fix: resolve connection timeout issue on slow networks
docs: update README with new installation steps
CRITICAL: Sebelum commit atau push, selalu verifikasi:
# 1. Check status - pastikan tidak ada file sensitif
git status
# 2. Review changes - pastikan tidak ada credentials
git diff
# 3. Verify no sensitive files are tracked
git ls-files | grep -E "_telkom_access.xml|\.env$|\.log$"
# Output harus KOSONG!
# 4. Check .gitignore is working
git check-ignore -v _telkom_access.xml
# Harus menunjukkan bahwa file di-ignore- ❌
_telkom_access.xml(kredensial aktual) - ❌
.env(local config) - ❌
*.log(log files) - ❌
*.xlsx(reports) - ❌ Any file with credentials or passwords
- ✅
_telkom_access.xml.example(template) - ✅
.env.example(template) - ✅ Source code (
*.py) - ✅ Documentation (
*.md) - ✅ Configuration templates
Sebelum submit PR, pastikan:
- Script berjalan tanpa error
- Semua fitur yang terpengaruh masih berfungsi
- Tidak ada regression pada fitur existing
- Output format tetap konsisten
- Script runs without errors
- Connection to devices successful
- Excel reports generated correctly
- Logging works properly
- Error handling works as expected
- No credentials in debug output
- Documentation updated
Jika menambah fitur baru:
- Update README.md
- Tambah docstring yang jelas
- Update changelog jika perlu
- Tambah contoh penggunaan
- Check existing issues
- Verify it's not a configuration issue
- Test with latest version
- Python version dan OS
- Complete error message
- Steps to reproduce
- Expected vs actual behavior
- Log files (with sensitive data removed!)
- Configuration (without credentials!)
Feature requests welcome! Please include:
- Clear description of the feature
- Use case / problem it solves
- Examples of how it would work
- Any implementation ideas
- Fork dan branch dari
main - Update documentation jika diperlukan
- Test thoroughly di environment Anda
- Security check - no credentials!
- Submit PR dengan deskripsi yang jelas
- Respond to feedback dari maintainers
- Code follows style guidelines
- Documentation updated
- No credentials or sensitive data
- Tested locally
- Commit messages are clear
- Branch is up to date with main
Semua contributions akan di-review untuk:
- Code quality dan style
- Security considerations
- Performance implications
- Documentation completeness
- Test coverage
Butuh bantuan? Anda bisa:
- Check existing documentation
- Open an issue untuk diskusi
- Ask in PR comments
Contributors akan di-list di README. Terima kasih atas kontribusi Anda!
Remember: Keamanan adalah prioritas #1. Selalu double-check sebelum commit!