Github
- Github started as a platorm for hosting and sharing code using git. It has become the most widely used repo for open source community
- Github has extented beyond its function as a hosting platform into a comprehensive DevOps platform.
- Capabilities
- Collaborative Coding
- Planning and tracking:
- Workflows & CI/CD
- CI/CD (Workflows)
- Github Packages
- Github Actions
- Developer Productivity
- Github CodeSpaces
- Github Copilot
- Client Apps
- Github CLI
- Integrations with almost all IDEs
- Integrates with chat platforms such as Slack & Teams
- Security
- Dependabot: Scan repository
- SBoMs (Software bill of materials)
- CodeQL (code analysis)
- Integrations:
- SynK
- Veracode
- CheckMarx
- Microsoft Defender
Hosting and Pricing For Github & Github Actions
- Personal Usage:
- Github free plan offers unlimited public and private repositories
- Many features are available for free on opensource projects but not for private repositories
- Enterprise Usage:
- GitHub Enterprise Cloud:
- Additional security features & supports single sign-on
- Github Enterprise Server:
- This can be hosted on private datacenters, cloud environments
- This is equivalent to GHEC
- Pricing
Github Actions
- This is name of workflow engine which executes workflow on events.
- some of the popular events are
- Github actions are written in YAML File. The actions are stored in the repo under
.github/workflows
YAML
- This is a data representation format optimized for human readability
- YAML files basic unit is key value pairs
KEY: <VALUE>
name: superman
- VALUES come in different shapes & forms often represented as Datatypes
- Datatypes
- Scalar
- Complex
- Collection (array/list)
- Map/Object/Hash
- YAML files generally have extension of
.yml or .yaml
- My laptop yaml
name: khaja-laptop
model: latitude 3450
manufacturer: dell
RAM: 64
processor: intel i7 13 Gen
fingerprintsupport: yes
facescan: no
- Collection types: this is list/array of anything (list of numbers or text or objects etc…)
colors: ["red", "blue", "black"]
colors:
- red
- blue
- black
colors:
- red
- blue
- black
address:
flat: 601
building: nilgiri
location: ameerpet
landmark: metro
city: Hyderbad
---
model: latitute 3450
manufacturer: dell
hardware:
cpu:
processor: intel i7
generation: 13
clockspeed: 1.7 GHz
ram:
size: 64 GB
disk:
size: 500 GB
gpu:
- name: gpu-0
manufacturer: intel
gpumemory: 32 GB
software:
os:
version: Windows 11 Pro
bit: 64-bit
language: en-us
productivty:
- office 2025
Git Tags
- Tags in Git are also reference object like branches.
- Tags references specific commits
- Tags are generally created to represent some milestone
- Tags are of two types:
- Lightweight tag:
- Annotated Tag:
- pointer to a commit
- stores extra info tagger name date and message
- Creating tags
# light weight
git tag v1.0
# annotated
git tag -a v1.0 -m "Release 1.0"
git tag
git push origin v1.0
# push all tags
git push origin --tags