{"id":17161315,"url":"https://github.com/andreas-bauer/oss-on-github","last_synced_at":"2026-04-09T10:41:41.149Z","repository":{"id":127476211,"uuid":"564369652","full_name":"andreas-bauer/oss-on-github","owner":"andreas-bauer","description":"Open Source Software Projects on GitHub","archived":false,"fork":false,"pushed_at":"2023-11-24T08:37:35.000Z","size":10,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T15:47:52.924Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreas-bauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-10T15:14:11.000Z","updated_at":"2024-01-25T08:30:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"dc09a5d1-9b04-49f0-a7de-af1ba1f9811f","html_url":"https://github.com/andreas-bauer/oss-on-github","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Foss-on-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Foss-on-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Foss-on-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Foss-on-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreas-bauer","download_url":"https://codeload.github.com/andreas-bauer/oss-on-github/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248267112,"owners_count":21075302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T22:27:53.836Z","updated_at":"2026-04-09T10:41:36.120Z","avatar_url":"https://github.com/andreas-bauer.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Source Software (OSS) Projects on GitHub\n\nThis repository serves as a guide on how to do\nOpen Source Software (OSS) projects on GitHub.\n\n## Open Source Software\n\nOther commonly used terms are\n\n- Free and Open Source Software (FOSS)\n- Free/Libre and Open Source Software (FLOSS)\n\nOpen source software is software licensed under an open source license.\n\nThe [Open Source Initiative](https://opensource.org/) defines criteria for open source software and lists all licenses that are considered open source licenses.\n\n### How to choose a open source license?\n\nIf you are not sure which license you should chose have a look at [Choose a License](https://choosealicense.com).\nIt helps you to find a license that is aligns with your intent of openness.\n\n#### Copyleft licenses\n\nExamples: GNU General Public License (GPL), Affero GPL (AGPL),\nLesser General Public License (LGPL), or Eclipse Public License (EPL)\n\n#### Permissive licenses\n\nExamples: Apache, MIT, or Berkeley Source Distribution (BSD)\n\n### Licensing of artifacts that are not source code\n\nFor creative work such as text or images you can use a creative commons license:\n[Creative Commons](https://creativecommons.org/share-your-work/cclicenses/)\n\n## Presentation of the repository\n\n### How to design a good README file?\n\nThe README is the first thing that people see when they visit your repository.\nThus, a good README invites people to explore your repository and use your software.\n\nA good README should contain at least the following information:\n\n- A brief introduction to the project\n- Instructions on how to build, test, and run the project\n- License information\n\nSee my template: [README.md](/templates/README.md)\n\n### Plain text artifacts instead of binary artifacts (diagrams, etc.)\n\nIf you want to include diagrams in your README file you should use plain text formats if possible.\nBinary formats are not suitable for version control systems such as Git, which results in a not transparent change history.\n\nExamples for plain text representations:\n\n- [Mermaid diagrams](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/)\n- [Math formulas](https://github.blog/2022-05-19-math-support-in-markdown/)\n- [Slide decks](https://marp.app)\n\nA comparison between different plain text formats for diagrams can be found here: [https://text-to-diagram.com](https://text-to-diagram.com)\n\n## Continuous Integration/Delivery on GitHub\n\nContinuous integration (CI) and continuous delivery (CD) are software development practices that help to automate the build, test, and deployment process.\nProviding a feedback loop for developers and users.\nSince the build process is executed in a virtual environment, it is reproducible and independent of the local development environment.\nMissing dependency declarations are detected early through the clean virtual environment.\n\nFurther, it is a form of documentation, because it shows how to build, test, and deploy the software.\nThis way, you can't forget how to perform a complex build or deployment process.\n\n### GitHub Workflows with Actions\n\nIn GitHub, CI/CD is implemented as [GitHub workflows and actions](https://docs.github.com/en/actions/using-workflows).\n\nTasks that should be automated with workflows and actions:\n\n- Testing\n- Building\n- Linting (ensure consistent code style)\n- Deployment (e.g., as Docker image or to a cloud provider)\n\n### Credentials and secrets\n\nFile that represent credentials or secrets should **never** be committed to the repository, **even if it is a private repository**!\nIf you need to store credentials or other secrets in your repository, you should use [GitHub secrets](https://docs.github.com/en/actions/reference/encrypted-secrets).\n\nIn the following example, the `google-services.json` file is created during the CI process from a GitHub secret.\nThe content of the file is not stored in the repository and is now shown in the logs of the CI process.\n\n```yaml\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Copy google-services.json file\n      run: echo \"$GOOGLE_SERVICES_JSON\" \u003e\u003e google-services.json\n      env:\n       GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES }}\n```\n\n## Collaboration on GitHub\n\n### Pull requests\n\nPull requests (also known as merge requests) are a way to propose changes to a repository.\nThey are also a way to discuss changes via comments and reviews.\nIf you are not part the owner or a collaborator of a repository, pull requests are the only way to contribute to a repository.\n\nYou can setup GitHub so that you need one or more review(s) before a pull request can be merged.\nThis is often done in organizations to ensure code quality and inform others about changes.\n\nSimilar to the [size of a commit](https://github.com/andreas-bauer/git-101#commit-size), a pull request should be as small as possible.\nThis makes it easier to review and understand the changes.\n\n### Issues\n\nIssues are not only to report bugs, but also a simple way for project management and coordination, e.g., to discuss new features or improvements.\n\nYou can use issues to manage\n\n- To-do lists\n- User stories\n- Discuss ideas and design decisions\n- Feature requests\n- Answer questions\n\n## Contribute to a OSS projects\n\n### Good-first-issue\n\nGitHub provides a list of issues that are suitable for beginners:\n[GitHub topic](https://github.com/topics/good-first-issue)\n\nThis is a great opportunity to get started contributing to open source software.\n\n## License\n\nCopyright © 2023 Andreas Bauer\n\nThis work is licensed under [CC BY-SA 4.0](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreas-bauer%2Foss-on-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreas-bauer%2Foss-on-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreas-bauer%2Foss-on-github/lists"}