github-deploy isn't needed with the new release

This commit is contained in:
Tomas Jansson
2019-08-20 13:25:03 +02:00
parent d81aa55a8e
commit c98f5ee8e3
18 changed files with 0 additions and 667 deletions

View File

@@ -1,19 +0,0 @@
FROM alpine
LABEL "name"="deploystatus"
LABEL "maintainer"="Unacast <developers+github@unacast.com>"
LABEL "version"="1.0.0"
LABEL "com.github.actions.name"="Deploy status"
LABEL "com.github.actions.description"="Create a deploy status"
LABEL "com.github.actions.icon"="upload"
LABEL "com.github.actions.color"="green"
RUN mkdir /deploy-scripts
COPY ./bin /deploy-scripts/bin
COPY "entrypoint.sh" "/entrypoint.sh"
ENTRYPOINT ["/entrypoint.sh"]
CMD [""]

View File

@@ -1,15 +0,0 @@
Apache License, Version 2.0
Copyright (c) 2011 Dominic Tarr
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,22 +0,0 @@
The MIT License (MIT)
Copyright (c) 2018 GitHub, Inc. and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -1,18 +0,0 @@
include ../docker.mk
include ../help.mk
include ../shell.mk
.PHONY: clean
clean: ## Clean up after the build process.
.PHONY: lint
lint: shell-lint docker-lint ## Lint all of the files for this Action.
.PHONY: build
build: docker-build ## Build this Action.
.PHONY: test
test: shell-test ## Test the components of this Action.
.PHONY: publish
publish: docker-publish ## Publish this Action.

View File

@@ -1,76 +0,0 @@
# github-deploy
This actions adds functions for interacting with Github Deployment API and a Workflow instantiated from a deployment event
## Usage
The action installs functions in `${HOME}/bin`, for which you can use in later `action`s which does the actual deploy. An example workflow might look this:
```
workflow "On deploy" {
on = "deployment"
resolves = ["Deploy"]
}
action "Add deployscripts" {
uses = "unacast/actions/github-deploy@master"
}
action "Deploy" {
uses = "docker://byrnedo/alpine-curl"
secrets = ["GITHUB_TOKEN"]
args = "./scripts/deploy.sh"
needs = ["Add deployscripts"]
}
```
Furthermore, in the "`deploy.sh`" of your choice, you can utilize the following script commands from ${HOME}/bin:
### deployment-get-environment
This gets the submitted environment from within ${GITHUB_EVENT_PATH}. For example `production`
### deployment-get-id
This gets the created deployment-id from within ${GITHUB_EVENT_PATH}. Usually you won't have to deal with this, it is for most purposes used by `deployment-set-status`
### deployment-exec-try
This runs the params submitted, and if error creates a error deployment status using `deployment-create-status`. This command can be used in deploy-scripts or as a `entrypoint` as so:
```
...
action "Add deployscripts" {
uses = "unacast/actions/github-deploy@master"
}
action "Success" {
uses = "docker://byrnedo/alpine-curl"
args = "echo hallois"
runs = "/github/home/bin/deployment-exec-try"
secrets = ["GITHUB_TOKEN"]
needs = ["Add deployscripts"]
}
action "This one failes and updates Deployment API with error" {
uses = "docker://byrnedo/alpine-curl"
args = "cd this-folder-does-not-exist"
runs = "/github/home/bin/deployment-exec-try"
secrets = ["GITHUB_TOKEN"]
needs = ["Add deployscripts"]
}
```
_Requires the container to have `curl` installed on failure._
### deployment-create-status
This function updates the Deployment API with the result of your deploy. For example `${HOME}/bin/deployment-create-status success` creates a success-status on the deployment event.
`success` can be replaced with the other allowed statuses (`error`, `failure`, `inactive`, `in_progress`, `queued` or `pending`) from the [Create a deployment status
endpoint](https://developer.github.com/v3/repos/deployments/#create-a-deployment-status)
_Requires the container to have `curl` installed._
## License
The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE.MIT) and [Apache 2](LICENSE.APACHE2).
It uses the excellent [JSON.sh](https://github.com/dominictarr/JSON.sh) for json parsing.

View File

@@ -1,210 +0,0 @@
#!/bin/sh
# Source is from the great https://github.com/dominictarr/JSON.sh
throw() {
echo "$*" >&2
exit 1
}
BRIEF=0
LEAFONLY=0
PRUNE=0
NO_HEAD=0
NORMALIZE_SOLIDUS=0
usage() {
echo
echo "Usage: JSON.sh [-b] [-l] [-p] [-s] [-h]"
echo
echo "-p - Prune empty. Exclude fields with empty values."
echo "-l - Leaf only. Only show leaf nodes, which stops data duplication."
echo "-b - Brief. Combines 'Leaf only' and 'Prune empty' options."
echo "-n - No-head. Do not show nodes that have no path (lines that start with [])."
echo "-s - Remove escaping of the solidus symbol (straight slash)."
echo "-h - This help text."
echo
}
parse_options() {
set -- "$@"
local ARGN=$#
while [ "$ARGN" -ne 0 ]
do
case $1 in
-h) usage
exit 0
;;
-b) BRIEF=1
LEAFONLY=1
PRUNE=1
;;
-l) LEAFONLY=1
;;
-p) PRUNE=1
;;
-n) NO_HEAD=1
;;
-s) NORMALIZE_SOLIDUS=1
;;
?*) echo "ERROR: Unknown option."
usage
exit 0
;;
esac
shift 1
ARGN=$((ARGN-1))
done
}
awk_egrep () {
local pattern_string=$1
gawk '{
while ($0) {
start=match($0, pattern);
token=substr($0, start, RLENGTH);
print token;
$0=substr($0, start+RLENGTH);
}
}' pattern="$pattern_string"
}
tokenize () {
local GREP
local ESCAPE
local CHAR
if echo "test string" | egrep -ao --color=never "test" >/dev/null 2>&1
then
GREP='egrep -ao --color=never'
else
GREP='egrep -ao'
fi
if echo "test string" | egrep -o "test" >/dev/null 2>&1
then
ESCAPE='(\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})'
CHAR='[^[:cntrl:]"\\]'
else
GREP=awk_egrep
ESCAPE='(\\\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})'
CHAR='[^[:cntrl:]"\\\\]'
fi
local STRING="\"$CHAR*($ESCAPE$CHAR*)*\""
local NUMBER='-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?'
local KEYWORD='null|false|true'
local SPACE='[[:space:]]+'
# Force zsh to expand $A into multiple words
local is_wordsplit_disabled=$(unsetopt 2>/dev/null | grep -c '^shwordsplit$')
if [ $is_wordsplit_disabled != 0 ]; then setopt shwordsplit; fi
$GREP "$STRING|$NUMBER|$KEYWORD|$SPACE|." | egrep -v "^$SPACE$"
if [ $is_wordsplit_disabled != 0 ]; then unsetopt shwordsplit; fi
}
parse_array () {
local index=0
local ary=''
read -r token
case "$token" in
']') ;;
*)
while :
do
parse_value "$1" "$index"
index=$((index+1))
ary="$ary""$value"
read -r token
case "$token" in
']') break ;;
',') ary="$ary," ;;
*) throw "EXPECTED , or ] GOT ${token:-EOF}" ;;
esac
read -r token
done
;;
esac
[ "$BRIEF" -eq 0 ] && value=$(printf '[%s]' "$ary") || value=
:
}
parse_object () {
local key
local obj=''
read -r token
case "$token" in
'}') ;;
*)
while :
do
case "$token" in
'"'*'"') key=$token ;;
*) throw "EXPECTED string GOT ${token:-EOF}" ;;
esac
read -r token
case "$token" in
':') ;;
*) throw "EXPECTED : GOT ${token:-EOF}" ;;
esac
read -r token
parse_value "$1" "$key"
obj="$obj$key:$value"
read -r token
case "$token" in
'}') break ;;
',') obj="$obj," ;;
*) throw "EXPECTED , or } GOT ${token:-EOF}" ;;
esac
read -r token
done
;;
esac
[ "$BRIEF" -eq 0 ] && value=$(printf '{%s}' "$obj") || value=
:
}
parse_value () {
local jpath="${1:+$1,}$2" isleaf=0 isempty=0 print=0
case "$token" in
'{') parse_object "$jpath" ;;
'[') parse_array "$jpath" ;;
# At this point, the only valid single-character tokens are digits.
''|[!0-9]) throw "EXPECTED value GOT ${token:-EOF}" ;;
*) value=$token
# if asked, replace solidus ("\/") in json strings with normalized value: "/"
[ "$NORMALIZE_SOLIDUS" -eq 1 ] && value=$(echo "$value" | sed 's#\\/#/#g')
isleaf=1
[ "$value" = '""' ] && isempty=1
;;
esac
[ "$value" = '' ] && return
[ "$NO_HEAD" -eq 1 ] && [ -z "$jpath" ] && return
[ "$LEAFONLY" -eq 0 ] && [ "$PRUNE" -eq 0 ] && print=1
[ "$LEAFONLY" -eq 1 ] && [ "$isleaf" -eq 1 ] && [ $PRUNE -eq 0 ] && print=1
[ "$LEAFONLY" -eq 0 ] && [ "$PRUNE" -eq 1 ] && [ "$isempty" -eq 0 ] && print=1
[ "$LEAFONLY" -eq 1 ] && [ "$isleaf" -eq 1 ] && \
[ $PRUNE -eq 1 ] && [ $isempty -eq 0 ] && print=1
[ "$print" -eq 1 ] && printf "[%s]\t%s\n" "$jpath" "$value"
:
}
parse () {
read -r token
parse_value
read -r token
case "$token" in
'') ;;
*) throw "EXPECTED EOF GOT $token" ;;
esac
}
if ([ "$0" = "$BASH_SOURCE" ] || ! [ -n "$BASH_SOURCE" ]);
then
parse_options "$@"
tokenize | parse
fi
# vi: expandtab sw=2 ts=2

View File

@@ -1,33 +0,0 @@
#!/bin/sh
#
# Usage:
# deployment-create-status <state> <description>
#
# Arguments:
# $1 - The deployment state
# $2 - The deployment description
#
BASEDIR=$(dirname "$0")
DEPLOYMENT_ID=$("${BASEDIR}"/deployment-get-id)
GITHUB_URL="https://github.com"
GITHUB_API_URL="https://api.github.com"
DEPLOY_STATE="${1}"
DEPLOY_DESC="${2}"
[ -n "${DEPLOY_DESC}" ] || DEPLOY_DESC="Deploying from GitHub Actions"
echo "Setting status to ${DEPLOY_STATE} for deployment-id '${DEPLOYMENT_ID}'"
curl --silent --show-error --fail \
-X POST "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/deployments/${DEPLOYMENT_ID}/statuses" \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: text/json; charset=utf-8" \
-H "Accept: application/vnd.github.flash-preview+json" \
-d @- <<EOF
{
"state": "${DEPLOY_STATE}",
"target_url": "${GITHUB_URL}/${GITHUB_REPOSITORY}/actions",
"description": "${DEPLOY_DESC}"
}
EOF

View File

@@ -1,11 +0,0 @@
#!/bin/sh
BASEDIR=$(dirname "$0")
sh -c "$*"
RESULT=$?
if [ 0 != "${RESULT}" ];then
echo "Failed '$*'! Exit code '${RESULT}' is not equal to 0"
"${BASEDIR}"/deployment-create-status failure
exit ${RESULT}
fi

View File

@@ -1,5 +0,0 @@
#!/bin/sh
BASEDIR=$(dirname "$0")
"${BASEDIR}"/JSON.sh < "${GITHUB_EVENT_PATH}" | grep '\["deployment","environment"]' | cut -f2 | sed -e 's/^"//' -e 's/"$//'

View File

@@ -1,5 +0,0 @@
#!/bin/sh
BASEDIR=$(dirname "$0")
"${BASEDIR}"/JSON.sh < "${GITHUB_EVENT_PATH}" | grep '\["deployment","id"]' | cut -f2

View File

@@ -1,11 +0,0 @@
#!/bin/sh
set -e
if [ -z "$1" ] ; then
echo "Payload argument must be set. Usage: deployment-get-payload <payload>"
exit 64
fi
BASEDIR=$(dirname "$0")
_payload_field=$1
"${BASEDIR}"/JSON.sh < "${GITHUB_EVENT_PATH}" | grep "\[\"deployment\",\"payload\",\"config\",\"${_payload_field}\"]" | cut -f2 | sed -e 's/^"//' -e 's/"$//'

View File

@@ -1,4 +0,0 @@
#!/bin/sh
BASEDIR=$(dirname "$0")
"${BASEDIR}"/JSON.sh < "${GITHUB_EVENT_PATH}" | grep "\[\"deployment\",\"task\"]" | cut -f2 | sed -e 's/^"//' -e 's/"$//'

View File

@@ -1,4 +0,0 @@
#!/bin/sh
# Copy all files to USER Home, so that they are available for later actions
cp -R /deploy-scripts/bin "${HOME}"/.

View File

@@ -1,27 +0,0 @@
#!/usr/bin/env bats
#load bootstrap
PATH="$PATH:$BATS_TEST_DIRNAME/../bin"
export GITHUB_EVENT_PATH="$BATS_TEST_DIRNAME/fixtures/deployment.json"
@test "returns deployment id and $? = 0 deployment event" {
run deployment-get-id
[ "$status" -eq 0 ]
[ "$output" = "87972451" ]
}
@test "returns error code when GITHUB_EVENT_PATH not set" {
skip "this probably does not have the right behaviour?"
unset GITHUB_EVENT_PATH
run deployment-get-id
[ "$status" -ne 0 ]
}
@test "returns error code on other event than deployment" {
export GITHUB_EVENT_PATH="$BATS_TEST_DIRNAME/fixtures/pull_request_event.json"
run deployment-get-id
[ "$status" -eq 0 ]
[ "$output" = "" ]
}

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bats
#load bootstrap
PATH="$PATH:$BATS_TEST_DIRNAME/../bin"
export GITHUB_EVENT_PATH="$BATS_TEST_DIRNAME/fixtures/deployment.json"
@test "return error code if not given a parameter" {
run deployment-get-payload
[ "$status" -eq 64 ]
}
@test "returns correct payload item" {
run deployment-get-payload test_payload
[ "$status" -eq 0 ]
[ "$output" = "value" ]
}
@test "returns empty string if payload does not exist" {
run deployment-get-payload foo_payload
[ "$status" -eq 0 ]
[ "$output" = "" ]
}

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bats
PATH="$PATH:$BATS_TEST_DIRNAME/../bin"
export GITHUB_EVENT_PATH="$BATS_TEST_DIRNAME/fixtures/deployment.json"
@test "returs deployment task" {
run deployment-get-task
[ "$status" -eq 0 ]
[ "$output" = "deploy" ]
}

View File

@@ -1,154 +0,0 @@
{
"deployment": {
"url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/87972451",
"id": 87972451,
"node_id": "MDEwOkRlcGxveW1lbnQ4Nzk3MjQ1MQ==",
"sha": "a10867b14bb761a232cd80139fbd4c0d33264240",
"ref": "master",
"task": "deploy",
"payload": {
"config": {
"test_payload": "value"
}
},
"environment": "production",
"description": null,
"creator": {
"login": "Codertocat",
"id": 21031067,
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Codertocat",
"html_url": "https://github.com/Codertocat",
"followers_url": "https://api.github.com/users/Codertocat/followers",
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
"repos_url": "https://api.github.com/users/Codertocat/repos",
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
"type": "User",
"site_admin": false
},
"created_at": "2018-05-30T20:18:45Z",
"updated_at": "2018-05-30T20:18:45Z",
"statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments/87972451/statuses",
"repository_url": "https://api.github.com/repos/Codertocat/Hello-World"
},
"repository": {
"id": 135493233,
"node_id": "MDEwOlJlcG9zaXRvcnkxMzU0OTMyMzM=",
"name": "Hello-World",
"full_name": "Codertocat/Hello-World",
"owner": {
"login": "Codertocat",
"id": 21031067,
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Codertocat",
"html_url": "https://github.com/Codertocat",
"followers_url": "https://api.github.com/users/Codertocat/followers",
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
"repos_url": "https://api.github.com/users/Codertocat/repos",
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
"type": "User",
"site_admin": false
},
"private": false,
"html_url": "https://github.com/Codertocat/Hello-World",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/Codertocat/Hello-World",
"forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks",
"keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams",
"hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks",
"issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}",
"events_url": "https://api.github.com/repos/Codertocat/Hello-World/events",
"assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}",
"branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}",
"tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags",
"blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}",
"languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages",
"stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers",
"contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors",
"subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers",
"subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription",
"commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}",
"compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges",
"archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads",
"issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}",
"pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}",
"milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}",
"notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}",
"releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}",
"deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments",
"created_at": "2018-05-30T20:18:04Z",
"updated_at": "2018-05-30T20:18:35Z",
"pushed_at": "2018-05-30T20:18:44Z",
"git_url": "git://github.com/Codertocat/Hello-World.git",
"ssh_url": "git@github.com:Codertocat/Hello-World.git",
"clone_url": "https://github.com/Codertocat/Hello-World.git",
"svn_url": "https://github.com/Codertocat/Hello-World",
"homepage": null,
"size": 0,
"stargazers_count": 0,
"watchers_count": 0,
"language": null,
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"open_issues_count": 2,
"license": null,
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "master"
},
"sender": {
"login": "Codertocat",
"id": 21031067,
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Codertocat",
"html_url": "https://github.com/Codertocat",
"followers_url": "https://api.github.com/users/Codertocat/followers",
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
"repos_url": "https://api.github.com/users/Codertocat/repos",
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
"type": "User",
"site_admin": false
}
}

View File

@@ -1,17 +0,0 @@
{
"action": "closed",
"pull_request": {
"merged": "false",
"labels": [
{
"name": "urgent"
},
{
"name": "bug"
}
],
"user": {
"login": "pr-user"
}
}
}