Skip to content

Commit 6182903

Browse files
committed
Add Documentation
1 parent 6998a70 commit 6182903

File tree

5 files changed

+368
-8
lines changed

5 files changed

+368
-8
lines changed

README.md

Lines changed: 362 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,369 @@
11
# GitHub Action Utils
22

3+
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/saadmk11/github-action-utils?style=flat-square)](https://github.com/saadmk11/github-action-utils/releases/latest)
4+
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/saadmk11/github-action-utils/Test?label=Test&style=flat-square)
5+
![Codecov](https://img.shields.io/codecov/c/github/saadmk11/github-action-utils?style=flat-square&token=ugjHXbEKib)
6+
[![GitHub](https://img.shields.io/github/license/saadmk11/github-action-utils?style=flat-square)](https://github.com/saadmk11/github-action-utils/blob/main/LICENSE)
7+
[![GitHub stars](https://img.shields.io/github/stars/saadmk11/github-action-utils?color=success&style=flat-square)](https://github.com/saadmk11/github-action-utils/stargazers)
8+
39
This package is a collection of python functions that can be used to run [GitHub Action Workflow Commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions) from a python script inside a workflow.
410

5-
## Example:
11+
## Features
12+
13+
This package provides a simple interface to run GitHub Action Workflow Commands from a python script inside a workflow.
14+
You can run almost all the command from [GitHub Action Workflow Commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions) using this package.
15+
16+
17+
## Requirements
18+
19+
**Python:** 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
20+
21+
## Installation
22+
23+
Install `github-action-utils` using pip:
24+
25+
```console
26+
pip install github-action-utils
27+
```
28+
29+
## Usage
30+
31+
This section describes how to use the `github-action-utils` package. The functions in the package should be used inside a workflow.
32+
33+
### **`echo`**
34+
35+
Prints specified message to the action workflow console.
36+
37+
**example:**
38+
39+
```python
40+
>> from github_action_utils import echo
41+
42+
>> echo("Hello World")
43+
44+
# Output:
45+
# Hello World
46+
```
47+
48+
### **`debug`**
49+
50+
Prints colorful debug message to the action workflow console.
51+
GitHub Actions Docs: [debug](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-debug-message)
52+
53+
**example:**
54+
55+
```python
56+
>> from github_action_utils import debug
57+
58+
>> debug("Hello World")
59+
60+
# Output:
61+
# ::debug ::Hello World
62+
```
63+
64+
### **`notice`**
65+
66+
Prints colorful notice message to the action workflow console.
67+
GitHub Actions Docs: [notice](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-notice-message)
68+
69+
**example:**
70+
71+
```python
72+
>> from github_action_utils import notice
73+
74+
>> notice(
75+
"test message",
76+
title="test title",
77+
file="abc.py",
78+
col=1,
79+
end_column=2,
80+
line=4,
81+
end_line=5,
82+
)
83+
84+
# Output:
85+
# ::notice title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message=
86+
```
87+
88+
### **`warning`**
89+
90+
Prints colorful warning message to the action workflow console.
91+
GitHub Actions Docs: [warning](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-warning-message)
92+
93+
**example:**
94+
95+
```python
96+
>> from github_action_utils import warning
97+
98+
>> warning(
99+
"test message",
100+
title="test title",
101+
file="abc.py",
102+
col=1,
103+
end_column=2,
104+
line=4,
105+
end_line=5,
106+
)
107+
108+
# Output:
109+
# ::warning title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message
110+
```
111+
112+
### **`error`**
113+
114+
Prints colorful error message to the action workflow console.
115+
GitHub Actions Docs: [error](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-error-message)
116+
117+
**example:**
118+
119+
```python
120+
>> from github_action_utils import error
121+
122+
>> error(
123+
"test message",
124+
title="test title",
125+
file="abc.py",
126+
col=1,
127+
end_column=2,
128+
line=4,
129+
end_line=5,
130+
)
131+
132+
# Output:
133+
# ::error title=test title,file=abc.py,col=1,endColumn=2,line=4,endLine=5::test message
134+
```
135+
136+
### **`set_output`**
137+
138+
Sets an action's output parameter for the running workflow.
139+
GitHub Actions Docs: [set_output](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter)
140+
141+
**example:**
142+
143+
```python
144+
>> from github_action_utils import set_output
145+
146+
>> set_output("test_name", "test_value",)
147+
148+
# Output:
149+
# ::set-output name=test_name::test_value
150+
```
151+
152+
### **`save_state`**
153+
154+
Creates environment variable for sharing state with workflow's pre: or post: actions.
155+
GitHub Actions Docs: [save_state](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#sending-values-to-the-pre-and-post-actions)
156+
157+
**example:**
158+
159+
```python
160+
>> from github_action_utils import save_state
161+
162+
>> save_state("test_name", "test_value",)
163+
164+
# Output:
165+
# ::save-state name=test_name::test_value
166+
```
167+
168+
### **`get_state`**
169+
170+
Gets state environment variable from running workflow.
171+
172+
**example:**
173+
174+
```python
175+
>> from github_action_utils import get_state
176+
177+
>> get_state("test_name")
178+
179+
# Output:
180+
# test_value
181+
```
182+
183+
### **`get_state`**
184+
185+
Gets user input from running workflow.
186+
187+
**example:**
188+
189+
```python
190+
>> from github_action_utils import get_user_input
191+
192+
>> get_user_input("my_input")
193+
194+
# Output:
195+
# my value
196+
```
197+
198+
### **`begin_stop_commands` and `end_stop_commands`**
199+
200+
Stops processing any workflow commands. This special command allows you to log anything without accidentally running a workflow command.
201+
GitHub Actions Docs: [stop_commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#stopping-and-starting-workflow-commands)
202+
203+
**example:**
204+
205+
```python
206+
>> from github_action_utils import echo, begin_stop_commands, end_stop_commands, stop_commands
207+
208+
>> begin_stop_commands(token="my_token")
209+
>> echo("Hello World")
210+
>> end_stop_commands("my_token")
211+
212+
# Output:
213+
# ::stop-commands ::my_token
214+
# Hello World
215+
# ::my_token::
216+
217+
# ====================
218+
# Using Stop Commands Context Manager
219+
# ====================
220+
221+
>> with stop_commands(token="my_token"):
222+
... echo("Hello World")
223+
224+
# Output:
225+
# ::stop-commands ::my_token
226+
# Hello World
227+
# ::my_token::
228+
```
229+
230+
### **`add_mask`**
231+
232+
Masking a value prevents a string or variable from being printed in the workflow console.
233+
GitHub Actions Docs: [add_mask](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#masking-a-value-in-log)
234+
235+
**example:**
236+
237+
```python
238+
>> from github_action_utils import add_mask
239+
240+
>> add_mask("test value")
241+
242+
# Output:
243+
# ::add-mask ::test value
244+
```
245+
246+
### **`set_env`**
247+
248+
Creates an environment variable by writing this to the `GITHUB_ENV` environment file which is available to any subsequent steps in a workflow job.
249+
GitHub Actions Docs: [set_env](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable)
250+
251+
**example:**
252+
253+
```python
254+
>> from github_action_utils import set_env
255+
256+
>> set_env("my_env", "test value")
257+
```
258+
259+
### **`get_workflow_environment_variables`**
260+
261+
Gets all environment variables from the `GITHUB_ENV` environment file which is available to the workflow.
262+
GitHub Actions Docs: [set_env](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable)
263+
264+
**example:**
265+
266+
```python
267+
>> from github_action_utils import get_workflow_environment_variables
268+
269+
>> get_workflow_environment_variables()
270+
271+
# Output:
272+
# {"my_env": "test value"}
273+
```
274+
275+
### **`get_env`**
276+
277+
Gets all environment variables from `os.environ` or the `GITHUB_ENV` environment file which is available to the workflow.
278+
This can also be used to get [environment variables set by GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables).
279+
GitHub Actions Docs: [set_env](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable)
280+
281+
**example:**
282+
283+
```python
284+
>> from github_action_utils import get_env
285+
286+
>> get_env("my_env")
287+
>> get_env("GITHUB_API_URL")
288+
289+
# Output:
290+
# test value
291+
# https://api.github.com
292+
```
293+
294+
### **`append_job_summary`**
295+
296+
Sets some custom Markdown for each job so that it will be displayed on the summary page of a workflow run.
297+
GitHub Actions Docs: [append_job_summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary)
298+
299+
**example:**
300+
301+
```python
302+
>> from github_action_utils import append_job_summary
303+
304+
>> append_job_summary("# test summary")
305+
```
306+
307+
308+
### **`overwrite_job_summary`**
309+
310+
Clears all content for the current step, and adds new job summary.
311+
GitHub Actions Docs: [overwrite_job_summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#overwriting-job-summaries)
312+
313+
**example:**
314+
315+
```python
316+
>> from github_action_utils import overwrite_job_summary
317+
318+
>> overwrite_job_summary("# test summary")
319+
```
320+
321+
### **`remove_job_summary`**
322+
323+
completely removes job summary for the current step.
324+
GitHub Actions Docs: [remove_job_summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#removing-job-summaries)
325+
326+
**example:**
327+
328+
```python
329+
>> from github_action_utils import remove_job_summary
330+
331+
>> remove_job_summary()
332+
```
333+
334+
### **`add_system_path`**
335+
336+
Prepends a directory to the system PATH variable (`GITHUB_PATH`) and automatically makes it available to all subsequent actions in the current job.
337+
GitHub Actions Docs: [add_system_path](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path)
338+
339+
**example:**
340+
341+
```python
342+
>> from github_action_utils import add_system_path
343+
344+
>> add_system_path("var/path/to/file")
345+
```
346+
347+
### **`event_payload`**
348+
349+
Get GitHub Event payload that triggered the workflow.
350+
351+
More details: [GitHub Actions Event Payload](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads)
352+
353+
**example:**
354+
355+
```python
356+
>> from github_action_utils import event_payload
357+
358+
>> event_payload()
359+
360+
# Output:
361+
# {"action": "opened", "number": 1, "pull_request": {"url": "https://api.github.com/repos/octocat/Hello-World/pulls/1"}, "repository": {"url": "https://api.github.com/repos/octocat/Hello-World"}, "sender": {"login": "octocat"}...}
362+
```
363+
364+
## Example
6365

7-
### Example Workflow:
366+
### Example Workflow
8367

9368
```yaml
10369
name: run-python-script
@@ -43,7 +402,7 @@ jobs:
43402
gha_utils.append_job_summary("# Hello World")
44403
```
45404
46-
### Example Code:
405+
### Example Code
47406
48407
```python
49408
import github_action_utils as gha_utils

requirements-dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
coverage
2+
mypy
23
pytest
34
pytest-cov

setup.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[metadata]
22
name = github-action-utils
3-
version = 0.8.0
4-
description = Useful utilities for GitHub Actions
3+
version = 1.0.0
4+
description = Utilities for GitHub Action Commands
55
long_description = file: README.md
66
long_description_content_type = text/markdown
77
url = https://github.com/saadmk11/github-action-utils

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy