Created
August 2, 2018 15:12
-
-
Save rquackenbush/ba8807f4a292fc6ded76a5e52ceeb07b to your computer and use it in GitHub Desktop.
Manipulating github through api calls
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Threading.Tasks; | |
using Octokit; | |
using Octokit.Internal; | |
namespace GithubApiTest | |
{ | |
class Program | |
{ | |
static async Task<int> Main(string[] args) | |
{ | |
var credentials = new Credentials("username", "asdfasdfads"); | |
var credentialStore = new InMemoryCredentialStore(credentials); | |
var client = new GitHubClient(new ProductHeaderValue("MyAmazingApp"), credentialStore); | |
//await DeleteAllTagsAsync(client, "Boondocks", "boondocks-raspberrypi"); | |
//await ListAllReleases(client, "Boondocks", "boondocks-raspberrypi"); | |
//await ListAllReleases(client, "Boondocks", "boondocks-raspberrypi"); | |
//await ListTagsAsync(client, "Boondocks", "boondocks-raspberrypi"); | |
return 0; | |
} | |
private static async Task<int> ListBranchesAsync(GitHubClient client) | |
{ | |
var branches = await client.Repository.Branch.GetAll("Boondocks", "github-api-test"); | |
Console.WriteLine("Branches:"); | |
foreach (var branch in branches) | |
{ | |
Console.WriteLine($" {branch.Name}"); | |
} | |
return 0; | |
} | |
private static async Task<int> DeleteAllTagsAsync(GitHubClient client, string owner, string repositoryName) | |
{ | |
var tags = await client.Repository.GetAllTags(owner, repositoryName); | |
Console.WriteLine("Delete all Tags:"); | |
foreach (var tag in tags) | |
{ | |
Console.WriteLine($" Deleting tag {tag.Name} [{tag.Commit.Sha}]..."); | |
await client.Git.Reference.Delete(owner, repositoryName, $"tags/{tag.Name}"); | |
} | |
return 0; | |
} | |
private static async Task ListAllReleases(GitHubClient client, string owner, string repositoryName) | |
{ | |
var releases = await client.Repository.Release.GetAll(owner, repositoryName); | |
Console.WriteLine("Releases:"); | |
foreach (var release in releases) | |
{ | |
string prerelease = release.Prerelease? "- Prerelease" : ""; | |
Console.WriteLine($" {release.Name} {prerelease}"); | |
} | |
} | |
private static async Task DeleteAllReleases(GitHubClient client, string owner, string repositoryName) | |
{ | |
var releases = await client.Repository.Release.GetAll(owner, repositoryName); | |
Console.WriteLine("Deleting releases:"); | |
foreach (var release in releases) | |
{ | |
Console.WriteLine($" Deleting release '{release.Name}' [{release.Id}]..."); | |
await client.Repository.Release.Delete(owner, repositoryName, release.Id); | |
} | |
} | |
private static async Task ListTagsAsync(GitHubClient client, string owner, string repositoryName) | |
{ | |
var tags = await client.Repository.GetAllTags(owner, repositoryName); | |
Console.WriteLine("Tags:"); | |
foreach (var tag in tags) | |
{ | |
Console.WriteLine($" {tag.Name} [{tag.Commit.Sha}]"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment