62 lines
1.2 KiB
Markdown
62 lines
1.2 KiB
Markdown
# GitHub Linking Patterns
|
|
|
|
All file/dir/code refs → fluent markdown links. Never raw URLs.
|
|
|
|
## URL Formats
|
|
|
|
### File
|
|
```
|
|
https://github.com/{owner}/{repo}/blob/{ref}/{path}
|
|
```
|
|
|
|
### File + Lines
|
|
```
|
|
https://github.com/{owner}/{repo}/blob/{ref}/{path}#L{start}-L{end}
|
|
```
|
|
|
|
### Directory
|
|
```
|
|
https://github.com/{owner}/{repo}/tree/{ref}/{path}
|
|
```
|
|
|
|
### GitLab (note `/-/blob/`)
|
|
```
|
|
https://gitlab.com/{owner}/{repo}/-/blob/{ref}/{path}
|
|
```
|
|
|
|
## Ref Resolution
|
|
|
|
| Source | Use as ref |
|
|
|--------|------------|
|
|
| Known version | `v{version}` |
|
|
| Default branch | `main` or `master` |
|
|
| opensrc fetch | ref from result |
|
|
| Specific commit | full SHA |
|
|
|
|
## Examples
|
|
|
|
### Correct
|
|
```markdown
|
|
The [`parseAsync`](https://github.com/colinhacks/zod/blob/main/src/types.ts#L450-L480) method handles...
|
|
```
|
|
|
|
### Wrong
|
|
```markdown
|
|
See https://github.com/colinhacks/zod/blob/main/src/types.ts#L100
|
|
The parseAsync method in src/types.ts handles...
|
|
```
|
|
|
|
## Line Numbers
|
|
|
|
- Single: `#L42`
|
|
- Range: `#L42-L50`
|
|
- Prefer ranges for context (2-5 lines around key code)
|
|
|
|
## Registry → GitHub
|
|
|
|
| Registry | Find repo in |
|
|
|----------|--------------|
|
|
| npm | `package.json` → `repository` |
|
|
| PyPI | `pyproject.toml` or setup.py |
|
|
| crates | `Cargo.toml` |
|