Add bin and edit workflow
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s

This commit is contained in:
2026-09-16 13:11:16 -06:00
parent c8ac4fcae5
commit 4cee170d66
17576 changed files with 895740 additions and 2 deletions
@@ -0,0 +1,294 @@
# frozen_string_literal: true
module Octokit
class Client
# Methods for Projects API
#
# @see https://docs.github.com/en/rest/projects
module Projects
# List projects for a repository
#
# Requires authenticated client
#
# @param repo [Integer, String, Repository, Hash] A GitHub repository
# @return [Array<Sawyer::Resource>] Repository projects
# @see https://developer.github.com/v3/projects/#list-repository-projects
# @example
# @client.projects('octokit/octokit.rb')
def projects(repo, options = {})
paginate "#{Repository.path repo}/projects", options
end
# Create a project
#
# Requires authenticated client
#
# @param repo [Integer, String, Repository, Hash] A GitHub repository
# @param name [String] Project name
# @option options [String] :body Body of the project
# @return [Sawyer::Resource] Fresh new project
# @see https://developer.github.com/v3/projects/#create-a-repository-project
# @example Create project with only a name
# @client.create_project('octokit/octokit.rb', 'implement new APIs')
#
# @example Create project with name and body
# @client.create_project('octokit/octokit.rb', 'bugs be gone', body: 'Fix all the bugs @joeyw creates')
def create_project(repo, name, options = {})
options[:name] = name
post "#{Repository.path repo}/projects", options
end
# List organization projects
#
# Requires authenticated client
#
# @param org [String] A GitHub organization
# @return [Array<Sawyer::Resource>] Organization projects
# @see https://developer.github.com/v3/projects/#list-organization-projects
# @example
# @client.org_projects("octokit")
def org_projects(org, options = {})
paginate "orgs/#{org}/projects", options
end
alias organization_projects org_projects
# Create organization project
#
# Requires authenticated client
#
# @param org [String] A GitHub organization
# @param name [String] Project name
# @option options [String] :body Project body
# @return [Sawyer::Resource] Organization project
# @see https://developer.github.com/v3/projects/#create-an-organization-project
# @example Create with only a name
# @client.create_org_project("octocat", "make more octocats")
# @example Create a project with name and body
# @client.create_org_project("octokit", "octocan", body: 'Improve clients')
def create_org_project(org, name, options = {})
options[:name] = name
post "orgs/#{org}/projects", options
end
alias create_organization_project create_org_project
# Get a project by id
#
# @param id [Integer] Project id
# @return [Sawyer::Resource] Project
# @see https://developer.github.com/v3/projects/#get-a-project
# @example
# Octokit.project(123942)
def project(id, options = {})
get "projects/#{id}", options
end
# Update a project
#
# Requires authenticated client
#
# @param id [Integer] Project id
# @option options [String] :name Project name
# @option options [String] :body Project body
# @return [Sawyer::Resource] Project
# @see https://developer.github.com/v3/projects/#update-a-project
# @example Update project name
# @client.update_project(123942, name: 'New name')
def update_project(id, options = {})
patch "projects/#{id}", options
end
# Delete a project
#
# Requires authenticated client
#
# @param id [Integer] Project id
# @return [Boolean] Result of deletion
# @see https://developer.github.com/v3/projects/#delete-a-project
# @example
# @client.delete_project(123942)
def delete_project(id, options = {})
boolean_from_response :delete, "projects/#{id}", options
end
# List project columns
#
# @param id [Integer] Project id
# @return [Array<Sawyer::Resource>] List of project columns
# @see https://developer.github.com/v3/projects/columns/#list-project-columns
# @example
# @client.project_columns(123942)
def project_columns(id, options = {})
paginate "projects/#{id}/columns", options
end
# Create a project column
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @param name [String] New column name
# @return [Sawyer::Resource] Newly created column
# @see https://developer.github.com/v3/projects/columns/#create-a-project-column
# @example
# @client.create_project_column(123942, "To Dones")
def create_project_column(id, name, options = {})
options[:name] = name
post "projects/#{id}/columns", options
end
# Get a project column by ID
#
# @param id [Integer] Project column id
# @return [Sawyer::Resource] Project column
# @see https://developer.github.com/v3/projects/columns/#get-a-project-column
# @example
# Octokit.project_column(30294)
def project_column(id, options = {})
get "projects/columns/#{id}", options
end
# Update a project column
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @param name [String] New column name
# @return [Sawyer::Resource] Updated column
# @see https://developer.github.com/v3/projects/columns/#update-a-project-column
# @example
# @client.update_project_column(30294, "new column name")
def update_project_column(id, name, options = {})
options[:name] = name
patch "projects/columns/#{id}", options
end
# Delete a project column
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @return [Boolean] Result of deletion request, true when deleted
# @see https://developer.github.com/v3/projects/columns/#delete-a-project-column
# @example
# @client.delete_project_column(30294)
def delete_project_column(id, options = {})
boolean_from_response :delete, "projects/columns/#{id}", options
end
# Move a project column
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @param position [String] New position for the column. Can be one of
# <tt>first</tt>, <tt>last</tt>, or <tt>after:<column-id></tt>, where
# <tt><column-id></tt> is the id value of a column in the same project.
# @return [Sawyer::Resource] Result
# @see https://developer.github.com/v3/projects/columns/#move-a-project-column
# @example
# @client.move_project_column(30294, "last")
def move_project_column(id, position, options = {})
options[:position] = position
post "projects/columns/#{id}/moves", options
end
# List columns cards
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @return [Array<Sawyer::Resource>] Cards in the column
# @see https://developer.github.com/v3/projects/cards/#list-project-cards
# @example
# @client.column_cards(30294)
def column_cards(id, options = {})
paginate "projects/columns/#{id}/cards", options
end
# Create project card
#
# Requires authenticated client
#
# @param id [Integer] Project column id
# @option options [String] :note Card contents for a note type
# @option options [Integer] :content_id Issue ID for the card contents
# @option options [String] :content_type Type of content to associate
# with the card. <tt>Issue</tt> is presently the only avaiable value
# @note If :note is supplied, :content_id and :content_type must be
# excluded. Similarly, if :content_id is supplied, :content_type must
# be set and :note must not be included.
# @return [Sawyer::Resource] Newly created card
# @see https://developer.github.com/v3/projects/cards/#create-a-project-card
# @example Create a project card with a note
# @client.create_project_card(123495, note: 'New note card')
# @example Create a project card for an repository issue
# @client.create_project_card(123495, content_id: 1, content_type: 'Issue')
def create_project_card(id, options = {})
post "projects/columns/#{id}/cards", options
end
# Get a project card
#
# Requires authenticated client
#
# @param id [Integer] Project card id
# @return [Sawyer::Resource] Project card
# @see https://developer.github.com/v3/projects/cards/#get-a-project-card
# @example
# @client.project_card(123495)
def project_card(id, options = {})
get "projects/columns/cards/#{id}", options
end
# Update a project card
#
# Requires authenticated client
#
# @param id [Integer] Project card id
# @option options [String] :note The card's note content. Only valid for
# cards without another type of content, so this cannot be specified if
# the card already has a content_id and content_type.
# @return [Sawyer::Resource] Updated project card
# @see https://developer.github.com/v3/projects/cards/#update-a-project-card
# @example
# @client.update_project_card(12345, note: 'new note')
def update_project_card(id, options = {})
patch "projects/columns/cards/#{id}", options
end
# Move a project card
#
# Requires authenticated client
#
# @param id [Integer] Project card id
# @param position [String] Can be one of <tt>top</tt>, <tt>bottom</tt>,
# or <tt>after:<card-id></tt>, where <card-id> is the id value of a
# card in the same column, or in the new column specified by column_id.
# @option options [Integer] :column_id The column id to move the card to,
# must be column in same project
# @return [Sawyer::Resource] Empty sawyer resource
# @see https://developer.github.com/v3/projects/cards/#move-a-project-card
# @example Move a card to the bottom of the same column
# @client.move_project_card(123495, 'bottom')
# @example Move a card to the top of another column
# @client.move_project_card(123495, 'top', column_id: 59402)
def move_project_card(id, position, options = {})
options[:position] = position
post "projects/columns/cards/#{id}/moves", options
end
# Delete a project card
#
# Requires authenticated client
#
# @param id [Integer] Project card id
# @return [Boolean] True of deleted, false otherwise
# @see https://developer.github.com/v3/projects/cards/#delete-a-project-card
# @example
# @client.delete_project_card(123495)
def delete_project_card(id, options = {})
boolean_from_response :delete, "projects/columns/cards/#{id}", options
end
end # Projects
end
end