Ich möchte etwas Code zu GitHub schieben. Es enthält einige private API-Schlüssel, die ich nicht veröffentlichen möchte. Gibt es eine Möglichkeit, es automatisch zu verstecken? Soll ich es manuell aus meinem Code entfernen?Wie Push-Code zu Github die API-Schlüssel versteckt?
Antwort
Sie sollten .env
Dateien verwenden und die Schlüssel aus den Umgebungsvariablen lesen. Wie das geht, hängt von der Sprache und den Werkzeugen ab, die Sie verwenden (für node.js, php usw.).
Sie können die Datei .env
von den Commits ausschließen, indem Sie .env
zu .gitignore
hinzufügen. Sie können auch eine Beispielkonfiguration .env.example
mit Dummy-Daten oder Leerzeichen hochladen, um das von Ihrer Anwendung benötigte Schema anzuzeigen.
Wenn Sie Ihren API-Schlüssel im Code haben, ist das wahrscheinlich eine schlechte Idee. Es bedeutet, dass jeder, der Ihren Code verwenden möchte, den Code bearbeiten und neu erstellen muss.
Die Lehrbuchlösung für solche Anwendungsfälle besteht darin, die Anmeldeinformationen in eine Konfigurationsdatei zu verschieben und eine klare Dokumentation in der Datei README.md
über die Struktur und den Speicherort der Konfigurationsdatei hinzuzufügen. Sie können auch einen Eintrag dafür in Ihrer Datei gitignore
hinzufügen, um zu verhindern, dass Sie (und alle anderen) versehentlich Ihre privaten Informationen zu GitHub übertragen.
Sie können enviornment variables auf Ihrem Server hinzufügen, um Ihre API-Schlüssel auszublenden. Alle gängigen Programmiersprachen verfügen standardmäßig über Methoden zum Zugriff auf die Umgebungsvariablen.
Jedes Mal, wenn Dateien mit sensiblen Daten haben wie
config.yml
dürfen Sie sie in Ihrem Repository begehen. Ich werde dir ein Beispiel zeigen.
Angenommen, eine YAML-Datei mit einigen Benutzernamen und ein Passwort haben:
# app/config/credentials.yml
credentials:
username: foo
password: bar
Wenn Sie die foo
und die bar values, remove this file from your repository, but add just a
distribution` Datei ausblenden möchten, die Felder Benutzername und Passwort erhalten soll, aber ohne reale Werte:
# app/config/credentials.yml.dist
credentials:
username: ~
password: ~
Während der Installation können Sie diese Datei, app/config/credentials.yml.dist
zu app/config/credentials.yml
bekommen zu kopieren.
Denken Sie auch daran, app/config/credentials.yml
zu Ihrer .gitignore
Datei hinzuzufügen.
Sein das gleiche für api Schlüssel:
# app/config/config.yml
config:
credentials:
username: foo
password: bar
api_stuffs:
api_foo: fooooo
api_secret: baaaaar
api_token: tooooken
Dies funktioniert für Konfigurationsdateien und ist ein gutes Muster, die Sie spart jedes Mal, müssen Sie die Struktur einer Konfiguration teilen, aber nicht sinnvoll, Daten. Ini-Dateien, Konfigurationen und so weiter.
Vielen Dank für die Informationen. :) –
Bitte erklären Sie downvote O_o – sensorario
- 1. Tomcat Hosting, OpenShift durch Github, bestimmte Seiten versteckt?
- 2. Die beste Möglichkeit, ROS/Catkin mit Github zu verwenden
- 3. Meteor - Wie man die verwendete Meteorversion versteckt
- 4. jquery, wie zu wissen, div ist versteckt?
- 5. Wie Wert in BeautifulSoup extrahieren zu versteckt
- 6. Cocoapods-Seite, die zu GitHub umleitet
- 7. Ändern die GitHub-Integrationen GitHub html?
- 8. Wie von Github zu Bitbucket zu migrieren?
- 9. Wie versteckt man die Auswahl auf UITableview?
- 10. wie Github-Datei zu einem GitHub-Seiten-Blog-Post
- 11. Xamarin Forms verblassen zu versteckt?
- 12. Warum zeigt/versteckt jQuery die Anzeige: Keine statt Sichtbarkeit: Versteckt?
- 13. Wie lösche ich Repositories, die zu Github beigetragen haben?
- 14. Was bedeuten die Github-Farbbalken in GitHub?
- 15. CAShapeLayer zu UILabel versteckt Text
- 16. erhalten die ersten Eingabetyp versteckt
- 17. Die ActionBar versteckt keinen Titel
- 18. Visual Studio zu GitHub
- 19. Gabel GitHub zu VSTS?
- 20. Github Integration & Services (Wie zu aktivieren)
- 21. Website zu GitHub hochladen
- 22. Wie GitHub Projekt zu meinem Android-Studio
- 23. Wie man Android-Project zu GitHub hinzufügt
- 24. Github: wie nach dem Klonen zu verzweigen?
- 25. GitHub API - wie 2 Commits zu vergleichen
- 26. Wie memcached aus Github Quellen zu kompilieren?
- 27. Wie Push-Anfrage in Github zu markieren
- 28. Tabellarische Ansicht, die die Abschnitte zuerst versteckt?
- 29. Beenden die GitHub-URLs?
- 30. GitHub API Grenze überschritten: Wie kann die Ratenbegrenzung in Front-End-Anwendungen auf die GitHub API
Niemals etwas festlegen, das Informationen enthält, die andere nicht sehen sollen. –