mirror of
https://github.com/zhigang1992/actions.git
synced 2026-01-12 17:12:24 +08:00
github-deploy isn't needed with the new release
This commit is contained in:
@@ -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 [""]
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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/"$//'
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
|
||||
"${BASEDIR}"/JSON.sh < "${GITHUB_EVENT_PATH}" | grep '\["deployment","id"]' | cut -f2
|
||||
@@ -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/"$//'
|
||||
@@ -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/"$//'
|
||||
@@ -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}"/.
|
||||
@@ -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" = "" ]
|
||||
}
|
||||
@@ -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" = "" ]
|
||||
}
|
||||
@@ -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" ]
|
||||
}
|
||||
154
github-deploy/test/fixtures/deployment.json
vendored
154
github-deploy/test/fixtures/deployment.json
vendored
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"action": "closed",
|
||||
"pull_request": {
|
||||
"merged": "false",
|
||||
"labels": [
|
||||
{
|
||||
"name": "urgent"
|
||||
},
|
||||
{
|
||||
"name": "bug"
|
||||
}
|
||||
],
|
||||
"user": {
|
||||
"login": "pr-user"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user