Skip to content

Commit

Permalink
Import first version
Browse files Browse the repository at this point in the history
  • Loading branch information
stem committed Feb 26, 2015
1 parent f4042f3 commit 77fd1dc
Show file tree
Hide file tree
Showing 4 changed files with 301 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vendor
67 changes: 67 additions & 0 deletions add-deploy-key.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/usr/bin/env php
<?php

require "./vendor/autoload.php";

$github_client = new GuzzleHttp\Client(
[
"base_url" => "https://api.github.com",
"defaults" => [
"headers" => [
"Authorization" => "token " . getenv("GITHUB_TOKEN"),
]
]
]
);

$drone_client = new GuzzleHttp\Client(
[
"base_url" => "http://drone.etna-alternance.net",
"defaults" => [
"query" => [
"access_token" => getenv("DRONE_TOKEN"),
]
]
]
);

$repos = $drone_client->get("/api/user/repos")->json();
$repos = array_filter(
$repos,
function ($repo) {
return $repo["host"] === "github.com" && $repo["owner"] === "etna-alternance" && $repo["active"] === true;
}
);

foreach ($repos as $repo) {
try {
echo "----> Checking {$repo["owner"]}/{$repo["name"]}\n";
echo " ----> Getting drone public key for {$repo["owner"]}/{$repo["name"]}\n";
$public_key = $drone_client->get("/api/repos/github.com/{$repo["owner"]}/{$repo["name"]}")->json()["public_key"];

echo " ----> Checking github keys for {$repo["owner"]}/{$repo["name"]}\n";
$ssh_keys = array_filter(
$github_client->get("/repos/{$repo["owner"]}/{$repo["name"]}/keys")->json(),
function ($repo) use ($public_key) {
return trim($repo["key"]) == trim($public_key);
}
);

if (empty($ssh_keys)) {
echo " ----> Adding github key to {$repo["owner"]}/{$repo["name"]}\n";
$add_response = $github_client->post(
"/repos/{$repo["owner"]}/{$repo["name"]}/keys",
[
"json" => [
"title" => "drone@drone.etna-alternance.net",
"key" => $public_key,
],
]
);
}
} catch (GuzzleHttp\Exception\ClientException $e) {
echo $e->getMessage(), "\n";
print_r($e->getResponse()->json());
break;
}
}
13 changes: 13 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "stem/drone",
"require-dev": {
"guzzlehttp/guzzle": "~5.2"
},
"authors": [
{
"name": "Stephane CRIVISIER",
"email": "stephane@crivisier.fr"
}
],
"require": {}
}
220 changes: 220 additions & 0 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 77fd1dc

Please sign in to comment.