What can you do with it?
Manage version control and collaborative software development with GitHub, including retrieving user information, managing repositories, handling issues, and accessing repository contents for code management and collaboration.
How to use it?
Basic Command Structure
/your-github-connection [action] [required-parameters] [optional-parameters]
Parameters
Required:
action
- The operation to perform (get-user, list-orgs, list-repos, create-repo, list-issues, create-issue, get-contents)
Optional:
owner
- Repository owner username
repo
- Repository name
path
- File path in repository
state
- Issue state (open, closed, all)
sort
- Sort criteria
direction
- Sort direction (asc, desc)
Get Current User
Retrieve information about the authenticated user
Parameters:
- No additional parameters required
Example:
/your-github-connection
action: get-user
Response:
{
"login": "anpinkfish",
"id": 188481194,
"node_id": "U_kgDOCzv-qg",
"avatar_url": "https://avatars.githubusercontent.com/u/188481194?v=4",
"html_url": "https://github.com/anpinkfish",
"type": "User",
"site_admin": false,
"name": "Arthur Nunes",
"company": null,
"blog": "",
"location": null,
"email": null,
"public_repos": 0,
"public_gists": 0,
"followers": 0,
"following": 1,
"created_at": "2024-11-14T15:55:35Z",
"updated_at": "2024-11-14T20:51:07Z",
"plan": {
"name": "free",
"space": 976562499,
"collaborators": 0,
"private_repos": 10000
}
}
List Organizations
List organizations for the authenticated user
Parameters:
per-page
(optional) - Number of results per page (default: 30, max: 100)
page
(optional) - Page number (default: 1)
Example:
/your-github-connection
action: list-orgs
per-page: 30
page: 1
Response:
[
{
"login": "pfdemo",
"id": 190025681,
"node_id": "O_kgDOC1OP0Q",
"url": "https://api.github.com/orgs/pfdemo",
"repos_url": "https://api.github.com/orgs/pfdemo/repos",
"events_url": "https://api.github.com/orgs/pfdemo/events",
"avatar_url": "https://avatars.githubusercontent.com/u/190025681?v=4",
"description": null
}
]
List Repositories
List repositories for the authenticated user
Parameters:
type
(optional) - Repository type (all, owner, public, private, member)
sort
(optional) - Sort criteria (created, updated, pushed, full_name)
direction
(optional) - Sort direction (asc, desc)
Example:
/your-github-connection
action: list-repos
type: all
sort: created
direction: desc
Response:
[
{
"id": 1296269,
"name": "pfdemorepo",
"full_name": "pfdemo/pfdemorepo",
"owner": {
"login": "pfdemo",
"id": 1
},
"private": false,
"description": "This is my first repo!",
"fork": false,
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z"
}
]
Create Repository
Create a new repository
Parameters:
name
(required) - Repository name
description
(optional) - Repository description
private
(optional) - Whether repository is private (default: false)
has-issues
(optional) - Whether to enable issues (default: true)
has-projects
(optional) - Whether to enable projects (default: true)
has-wiki
(optional) - Whether to enable wiki (default: true)
Example:
/your-github-connection
action: create-repo
name: pfdemorepo
description: This is my first repository
private: false
has-issues: true
has-projects: true
has-wiki: true
Response:
{
"id": 1296269,
"name": "pfdemorepo",
"full_name": "pfdemo/pfdemorepo",
"owner": {
"login": "pfdemo",
"id": 1
},
"private": false,
"created_at": "2011-01-26T19:01:12Z"
}
List Issues
List issues in a repository
Parameters:
owner
(required) - Repository owner username
repo
(required) - Repository name
state
(optional) - Issue state (open, closed, all)
sort
(optional) - Sort criteria (created, updated, comments)
direction
(optional) - Sort direction (asc, desc)
Example:
/your-github-connection
action: list-issues
owner: pfdemo
repo: pfdemorepo
state: open
sort: created
direction: desc
Response:
[
{
"id": 1,
"title": "Found a bug",
"body": "I'm having a problem with this.",
"state": "open",
"created_at": "2011-04-22T13:33:48Z",
"updated_at": "2011-04-22T13:38:35Z",
"closed_at": null,
"user": {
"login": "pfdemo",
"id": 1
}
}
]
Create Issue
Create a new issue in a repository
Parameters:
owner
(required) - Repository owner username
repo
(required) - Repository name
title
(required) - Issue title
body
(optional) - Issue description
assignees
(optional) - List of usernames to assign
labels
(optional) - List of labels to apply
Example:
/your-github-connection
action: create-issue
owner: pfdemo
repo: pfdemorepo
title: Found a bug
body: I'm having a problem with this.
assignees: pfdemo
labels: bug
Response:
{
"id": 1,
"title": "Found a bug",
"body": "I'm having a problem with this.",
"state": "open",
"created_at": "2011-04-22T13:33:48Z"
}
Get Repository Contents
Get the contents of a file or directory in a repository
Parameters:
owner
(required) - Repository owner username
repo
(required) - Repository name
path
(required) - File or directory path
Example:
/your-github-connection
action: get-contents
owner: pfdemo
repo: pfdemorepo
path: README.md
Response:
{
"type": "file",
"encoding": "base64",
"size": 5362,
"name": "README.md",
"path": "README.md",
"content": "encoded file content",
"sha": "3d21ec53a331a6f037a91c368710b99387d012c1"
}
Notes
GitHub API supports pagination with per_page and page parameters. File contents are returned as base64 encoded strings. All repository operations require appropriate permissions. The API follows REST conventions with standard HTTP methods and status codes.